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

📄 ap_message2.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00E4  1E01              LD      E,1
   \   00E6  3E00              LD      A,BYTE3 Lightmodeset
   \   00E8  210000            LD      HL,LWRD Lightmodeset
   \   00EB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    145                      g_light_flag = TRUE;
   \   00EE  3E01              LD      A,1
   \   00F0  320B00            LD      (g_light_flag),A
    146                      return NULL;
   \   00F3  C3D801            JP      LWRD ?0096
    147                  }
   \   00F6            ?0026:
    148                  key = key_value | AP_KEY_UP;
   \   00F6  78                LD      A,B
   \   00F7  CBEF              SET     5,A
   \   00F9  C3AF01            JP      LWRD ?0097
    149                  break;
   \   00FC            ?0027:
    150          
    151          
    152              case MSG_RTC2HZ:        //rtc
    153              case MSG_BAT_V_CHG:        //charging & rtc
    154                  g_rtc_counter++;
   \   00FC  2A0700            LD      HL,(g_rtc_counter)
   \   00FF  23                INC     HL
   \   0100  220700            LD      (g_rtc_counter),HL
    155          
    156                  if((g_light_time != 0) && (g_rtc_counter >= g_light_time)&&((input8(0x57) & 0x02)==0))    //自动关背光
   \   0103  3A0000            LD      A,(g_light_time)
   \   0106  B7                OR      A
   \   0107  281A              JR      Z,?0029
   \   0109  4F                LD      C,A
   \   010A  0600              LD      B,0
   \   010C  ED42              SBC     HL,BC
   \   010E  3813              JR      C,?0029
   \   0110  DB57              IN      A,(87)
   \   0112  CB4F              BIT     1,A
   \   0114  200D              JR      NZ,?0029
   \   0116            ?0031:
   \   0116            ?0030:
   \   0116            ?0028:
    157                  {
    158                      //关背光
    159                      Lightmodeset(FALSE);                         //开关背光(true: 开, false:关)       //zxs add for test
   \   0116  58                LD      E,B
   \   0117  3E00              LD      A,BYTE3 Lightmodeset
   \   0119  210000            LD      HL,LWRD Lightmodeset
   \   011C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    160                      g_light_flag = FALSE;
   \   011F  AF                XOR     A
   \   0120  320B00            LD      (g_light_flag),A
   \   0123            ?0029:
    161                  }
    162                  if(g_sleep_time != 0 && g_rtc_counter == g_sleep_time) //睡眠
   \   0123  2A0300            LD      HL,(g_sleep_time)
   \   0126  7D                LD      A,L
   \   0127  B4                OR      H
   \   0128  280D              JR      Z,?0033
   \   012A  ED4B0700          LD      BC,(g_rtc_counter)
   \   012E  ED42              SBC     HL,BC
   \   0130  2005              JR      NZ,?0033
   \   0132            ?0035:
   \   0132            ?0034:
   \   0132            ?0032:
    163                  {
    164                      return AP_MSG_SLEEP;
   \   0132  2E1F              LD      L,31
    165                  }
   \   0134  C3DF01            JP      LWRD ?0057
   \   0137            ?0033:
    166          
    167                  if(g_standby_time != 0 && g_rtc_counter == g_standby_time) //自动关机
   \   0137  2A0500            LD      HL,(g_standby_time)
   \   013A  7D                LD      A,L
   \   013B  B4                OR      H
   \   013C  280D              JR      Z,?0037
   \   013E  ED4B0700          LD      BC,(g_rtc_counter)
   \   0142  ED42              SBC     HL,BC
   \   0144  2005              JR      NZ,?0037
   \   0146            ?0039:
   \   0146            ?0038:
   \   0146            ?0036:
    168                  {
    169                      return AP_MSG_STANDBY;
   \   0146  2E1D              LD      L,29
    170                  }
   \   0148  C3DF01            JP      LWRD ?0057
   \   014B            ?0037:
    171          
    172                  if( (g_rtc_counter % 16) == 0 )
   \   014B  2A0700            LD      HL,(g_rtc_counter)
   \   014E  7D                LD      A,L
   \   014F  E60F              AND     15
   \   0151  2005              JR      NZ,?0041
   \   0153            ?0040:
    173                  {
    174          
    175                      return AP_MSG_WAIT_TIMEOUT;    //8 sec timeout
   \   0153  2E1E              LD      L,30
    176                  }
   \   0155  C3DF01            JP      LWRD ?0057
   \   0158            ?0041:
    177          
    178                  if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
   \   0158  DD46FE            LD      B,(IX-2)
   \   015B  05                DEC     B
   \   015C  E26501            JP      PO,?0043
   \   015F            ?0042:
   \   015F  DD36FE1C          LD      (IX-2),28
   \   0163  1877              JR      ?0056
   \   0165            ?0043:
    179                  else key = AP_MSG_CHARGING;
   \   0165  DD36FE1B          LD      (IX-2),27
   \   0169            ?0044:
    180          
    181                  break;
   \   0169  1871              JR      ?0056
   \   016B            ?0045:
    182          
    183          
    184              case MSG_USB_STICK:        //usb plugin, 等同按键
    185                  output8(0xf4,input8(0x0f4)&0xF7);    //set gio_c3 to low to cut battery
   \   016B  DBF4              IN      A,(244)
   \   016D  CB9F              RES     3,A
   \   016F  D3F4              OUT     (244),A
    186                  g_rtc_counter = 0;
   \   0171  210000            LD      HL,0
   \   0174  220700            LD      (g_rtc_counter),HL
    187                  key_count = 1;
   \   0177  23                INC     HL
   \   0178  220C00            LD      (?0012),HL
    188                  key = AP_MSG_USB_PLUGIN;
   \   017B  DD36FE1A          LD      (IX-2),26
    189          
    190                  //开背光
    191                  if(g_light_time != 0)
   \   017F  3A0000            LD      A,(g_light_time)
   \   0182  B7                OR      A
   \   0183  2857              JR      Z,?0056
   \   0185            ?0046:
    192                  {
    193                      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
    194                      g_light_flag = FALSE;
   \   018E  AF                XOR     A
   \   018F  320B00            LD      (g_light_flag),A
    195                  }
    196                  else
   \   0192            ?0047:
   \   0192            ?0048:
    197                  {
    198                  }
    199                  break;
   \   0192  1848              JR      ?0056
   \   0194            ?0049:
    200          
    201          //#ifndef DEBUG
    202              case MSG_LOW_POWER:    //low power, nmi 0.98v
    203                  DUMP("low power", 0);
    204                  key = AP_MSG_LOW_POWER;
   \   0194  DD36FE1F          LD      (IX-2),31
    205                  break;
   \   0198  1842              JR      ?0056
   \   019A            ?0050:
    206          //#endif
    207          
    208              case MSG_USB_UNSTICK:    //ap 不识别的消息
    209          
    210              case Msg_KeyNull:        //没有按键
    211          
    212              case Msg_KeyUnHold:
    213                  key = AP_KEY_NULL;
   \   019A  DD36FE00          LD      (IX-2),0
    214                  break;
   \   019E  183C              JR      ?0056
   \   01A0            ?0051:
    215          
    216          
    217              case Msg_KeyHold:
    218                  //lock 后还会有up消息
    219                  key = AP_MSG_LOCK;
    220                  g_rtc_counter = 0;
   \   01A0  210000            LD      HL,0
   \   01A3  220700            LD      (g_rtc_counter),HL
    221                  key_count = 1;
   \   01A6  23                INC     HL
   \   01A7  220C00            LD      (?0012),HL
    222                  key_value = key;
   \   01AA  3E19              LD      A,25
   \   01AC  320E00            LD      (?0013),A
   \   01AF            ?0097:
   \   01AF  DD77FE            LD      (IX-2),A
    223          
    224                  break;
   \   01B2  1828              JR      ?0056
   \   01B4            ?0052:
    225          
    226              case MSG_SD_IN:/*插卡状态*/
    227                  key = AP_MSG_SD_IN;
   \   01B4  DD36FE38          LD      (IX-2),56
    228                  break;
   \   01B8  1822              JR      ?0056
   \   01BA            ?0053:
    229          
    230              case MSG_SD_OUT:/*拨卡状态*/
    231                  key = AP_MSG_SD_OUT;
   \   01BA  DD36FE37          LD      (IX-2),55
    232                  break;
   \   01BE  181C              JR      ?0056
   \   01C0            ?0054:
    233          
    234              default:            //新的按键
    235                  g_rtc_counter = 0;
   \   01C0  210000            LD      HL,0
   \   01C3  220700            LD      (g_rtc_counter),HL
    236                  key_count = 1;
   \   01C6  23                INC     HL
   \   01C7  220C00            LD      (?0012),HL
    237                  key_value = key;
   \   01CA  7B                LD      A,E
   \   01CB  320E00            LD      (?0013),A
    238          
    239                  //开背光
    240                  if (!g_light_flag)
   \   01CE  3A0B00            LD      A,(g_light_flag)
   \   01D1  B7                OR      A
   \   01D2  2008              JR      NZ,?0056
   \   01D4            ?0055:
    241                  {
    242                      //如背灯没开,不理按键
    243                      key_count = 0;
   \   01D4  2B                DEC     HL
   \   01D5  220C00            LD      (?0012),HL
    244                      g_rtc_counter = 0;
    245                      return NULL;
   \   01D8            ?0096:
   \   01D8  2E00              LD      L,0
    246                  }
   \   01DA  1803              JR      ?0057
   \   01DC            ?0056:
   \   01DC            ?0023:
    247              } //switch()
    248              return key;
   \   01DC  DD6EFE            LD      L,(IX-2)
    249          }
   \   01DF            ?0057:
   \   01DF  DDF9              LD      SP,IX
   \   01E1  DDE1              POP     IX
   \   01E3  C1                POP     BC
   \   01E4  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01E7            ap_set_event:
    250          
    251          
    252          /*
    253          ********************************************************************************
    254          * Description : 设置事件发生标志
    255          *
    256          * Arguments   : event, 事件集合
    257          *
    258          * Returns     :
    259          *
    260          * Notes       :
    261          *
    262          ********************************************************************************
    263          */
    264          void ap_set_event(WORD event)
    265          {
   \   01E7  C5                PUSH    BC
   \   01E8  D5                PUSH    DE
   \   01E9  4B                LD      C,E
   \   01EA  42                LD      B,D
   \   01EB  210900            LD      HL,g_ap_event
   \   01EE  7E                LD      A,(HL)
   \   01EF  B1                OR      C
   \   01F0  77                LD      (HL),A
   \   01F1  23                INC     HL
   \   01F2  7E                LD      A,(HL)
   \   01F3  B0                OR      B
   \   01F4  77                LD      (HL),A
    266              g_ap_event |= event;
    267          }
   \   01F5  E1                POP     HL
   \   01F6  C1                POP     BC
   \   01F7  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01FA            ap_get_event:
    268          
    269          /*
    270          ********************************************************************************
    271          * Description : 检测事件是否发生
    272          *
    273          * Arguments   : event, 需要检测的事件集合
    274                  condition:
    275                      AP_EVENT_ALL:    所有事件发生,返回event,否则返回0
    276                      AP_EVENT_ANY:    任意事件发生,返回event,否则返回0
    277          * Returns     : event 按照 condition 指定的条件发生,返回系统事件的集合
    278                  不满足条件, 返回0
    279          *
    280          * Notes       :
    281          *
    282          ********************************************************************************
    283          */
    284          WORD ap_get_event(WORD event, WORD condition)
    285          {
   \   01FA  FDE5              PUSH    IY
   \   01FC  DDE5              PUSH    IX
   \   01FE  D5                PUSH    DE
   \   01FF  DDE1              POP     IX
   \   0201  C5                PUSH    BC
   \   0202  FDE1              POP     IY
    286              if(condition == AP_EVENT_ALL)
   \   0204  79                LD      A,C
   \   0205  A0                AND     B
   \   0206  3C                INC     A
   \   0207  2013              JR      NZ,?0059
   \   0209            ?0058:
    287              {
    288                  if( (g_ap_event & event) == event) return g_ap_event;
   \   0209  2A0900            LD      HL,(g_ap_event)
   \   020C  DDE5              PUSH    IX
   \   020E  C1                POP     BC
   \   020F  7D                LD      A,L
   \   0210  A1                AND     C
   \   0211  5F                LD      E,A
   \   0212  7C                LD      A,H
   \   0213  A0                AND     B
   \   0214  57                LD      D,A
   \   0215  EB                EX      DE,HL
   \   0216  ED42              SBC     HL,BC
   \   0218  201C              JR      NZ,?0063
   \   021A            ?0060:
   \   021A  1815              JR      ?0103
   \   021C            ?0061:

⌨️ 快捷键说明

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