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

📄 ap_message2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
    369          //void ap_del_event(WORD event)
    370          //{
    371          //    g_ap_event &= (~event);
    372          //}
    373          
    374          /*
    375          ********************************************************************************
    376          * Description : 睡眠指定的时间
    377          *
    378          * Arguments   : half_sec, 时间, 0.5秒为单位
    379          *
    380          * Returns     : 如果指定的时间内没有其他消息产生, 返回0
    381                  如果指定的时间内有其他消息产生, 返回该消息
    382          * Notes       : 如果指定的时间内有其他消息产生, 睡眠的时间将< 指定的时间
    383          *
    384          ********************************************************************************
    385          */
    386          char ap_sleep(int half_sec)
    387          {
   \   033A  C5                PUSH    BC
   \   033B  FDE5              PUSH    IY
   \   033D  DDE5              PUSH    IX
   \   033F  DD210000          LD      IX,0
   \   0343  DD39              ADD     IX,SP
   \   0345  F5                PUSH    AF
   \   0346  D5                PUSH    DE
   \   0347  FDE1              POP     IY
    388              unsigned char n=0;    //rtc counter
   \   0349  DD36FF00          LD      (IX-1),0
   \   034D            ?0078:
    389              char key;
    390          
    391              while(1)
    392              {
    393                  key = ap_get_message();
   \   034D  CD0000            CALL    LWRD ap_get_message
   \   0350  DD77FE            LD      (IX-2),A
    394                  if(key == AP_MSG_RTC ||
    395                      key == AP_MSG_CHARGING ||
    396                      key == AP_MSG_WAIT_TIMEOUT)    //sleep 时不管timeout
   \   0353  FE1C              CP      28
   \   0355  280E              JR      Z,?0082
   \   0357  DD7EFE            LD      A,(IX-2)
   \   035A  FE1B              CP      27
   \   035C  2807              JR      Z,?0082
   \   035E  DD7EFE            LD      A,(IX-2)
   \   0361  FE1E              CP      30
   \   0363  201A              JR      NZ,?0081
   \   0365            ?0082:
   \   0365            ?0083:
   \   0365            ?0080:
    397                  {
    398                      n++;
   \   0365  DD34FF            INC     (IX-1)
    399                      if(n >= half_sec) return 0;
   \   0368  DD6EFF            LD      L,(IX-1)
   \   036B  2600              LD      H,0
   \   036D  FDE5              PUSH    IY
   \   036F  C1                POP     BC
   \   0370  F680              OR      128
   \   0372  ED42              SBC     HL,BC
   \   0374  E27803            JP      PO,?0103
   \   0377  AC                XOR     H
   \   0378            ?0103:
   \   0378  FA4D03            JP      M,?0078
   \   037B            ?0084:
   \   037B  2E00              LD      L,0
    400                  }
   \   037D  1829              JR      ?0091
   \   037F            ?0085:
   \   037F            ?0081:
    401                  else if(key == AP_KEY_NULL ||
    402                      key == AP_MSG_UNLOCK ||
    403                      key == (AP_MSG_UNLOCK | AP_KEY_UP) ||
    404                      key == AP_MSG_LOCK ||
    405                      key == (AP_MSG_LOCK | AP_KEY_UP))    //lock 只有up, 没有long/hold
   \   037F  AF                XOR     A
   \   0380  DDB6FE            OR      (IX-2)
   \   0383  28C8              JR      Z,?0078
   \   0385  DD7EFE            LD      A,(IX-2)
   \   0388  FE18              CP      24
   \   038A  28C1              JR      Z,?0078
   \   038C  DD7EFE            LD      A,(IX-2)
   \   038F  FE38              CP      56
   \   0391  28BA              JR      Z,?0078
   \   0393  DD7EFE            LD      A,(IX-2)
   \   0396  FE19              CP      25
   \   0398  28B3              JR      Z,?0078
   \   039A  DD7EFE            LD      A,(IX-2)
   \   039D  FE39              CP      57
   \   039F  28AC              JR      Z,?0078
   \   03A1            ?0089:
   \   03A1            ?0090:
   \   03A1            ?0087:
    406                  {
    407                      continue;
   \   03A1            ?0088:
    408                  }
    409                  else
    410                  {
    411                      //here maybe hotkey
    412                      return ap_handle_hotkey(key);
   \   03A1  DD5EFE            LD      E,(IX-2)
   \   03A4  CD0000            CALL    LWRD ap_handle_hotkey
   \   03A7  6F                LD      L,A
    413                  }
   \   03A8            ?0091:
   \   03A8  DDF9              LD      SP,IX
   \   03AA  DDE1              POP     IX
   \   03AC  FDE1              POP     IY
   \   03AE  C1                POP     BC
   \   03AF  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03B2            ?0086:
    414              }
    415          
    416          }
   \   03B2  1899              JR      ?0078
   \   03B4            ap_handle_hotkey_core:
    417          
    418          /*
    419          ********************************************************************************
    420          * Description : 处理热键消息, 返回结果消息
    421          *
    422          * Arguments   : key, 按键消息
    423          *
    424          * Returns     : 如果有可识别的热键消息,  返回结果消息
    425                  如果没有可识别的热键消息,  返回0
    426          *
    427          * Notes       :
    428          *
    429          ********************************************************************************
    430          */
    431          char ap_handle_hotkey_core(char key)
    432          {
   \   03B4  DDE5              PUSH    IX
   \   03B6  DD210000          LD      IX,0
   \   03BA  DD39              ADD     IX,SP
   \   03BC  D5                PUSH    DE
    433              switch( key )
   \   03BD  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   03C0  0900              DEFW    9
   \   03C2  18                DEFB    24
   \   03C3  19                DEFB    25
   \   03C4  1A                DEFB    26
   \   03C5  1D                DEFB    29
   \   03C6  1F                DEFB    31
   \   03C7  31                DEFB    49
   \   03C8  81                DEFB    129
   \   03C9  8B                DEFB    139
   \   03CA  90                DEFB    144
   \   03CB  0F04              DEFW    ?0101
   \   03CD  E703              DEFW    ?0095
   \   03CF  DF03              DEFW    ?0093
   \   03D1  E303              DEFW    ?0094
   \   03D3  EB03              DEFW    ?0096
   \   03D5  E303              DEFW    ?0094
   \   03D7  E303              DEFW    ?0094
   \   03D9  EF03              DEFW    ?0097
   \   03DB  F303              DEFW    ?0098
   \   03DD  F303              DEFW    ?0098
   \   03DF            ?0093:
    434              {
    435              case AP_MSG_LOW_POWER_MY:
    436                  return RESULT_STANDBYY;
   \   03DF  2ECA              LD      L,202
    437                  
    438              case AP_KEY_PLAY | AP_KEY_LONG:    //长按play发standby
   \   03E1  182E              JR      ?0102
   \   03E3            ?0094:
    439              case AP_MSG_STANDBY:        //自动关机
    440              //case AP_MSG_SLEEP:        //睡眠
    441              //case AP_MSG_LOW_POWER:    //低电自动关机
    442              case AP_MSG_FORCE_STANDBY:    //使用上两个会报label duplicate
    443                  return RESULT_STANDBY;
   \   03E3  2E02              LD      L,2
    444              case AP_KEY_MODE | AP_KEY_LONG:    //长按menu进入main
   \   03E5  182A              JR      ?0102
   \   03E7            ?0095:
    445                  return RESULT_MAIN;
   \   03E7  2E0A              LD      L,10
    446          
    447              case AP_KEY_AB | AP_KEY_UP:    //进入录音
   \   03E9  1826              JR      ?0102
   \   03EB            ?0096:
    448                  return RESULT_RECORD;
   \   03EB  2E09              LD      L,9
    449              case AP_MSG_USB_PLUGIN:        //进入udisk 模式
   \   03ED  1822              JR      ?0102
   \   03EF            ?0097:
    450                  return RESULT_UDISK;
   \   03EF  2E04              LD      L,4
    451              case AP_MSG_LOCK:        //locked
   \   03F1  181E              JR      ?0102
   \   03F3            ?0098:
    452              case AP_MSG_UNLOCK:         //unlocked
    453                  if(ui_run_realtime)    //实时模式不显示lock
   \   03F3  3A0000            LD      A,(ui_run_realtime)
   \   03F6  B7                OR      A
   \   03F7  2804              JR      Z,?0100
   \   03F9            ?0099:
    454                  {
    455                      //TODO: send lock message to message queue
    456                      return 0;
   \   03F9  2E00              LD      L,0
    457                  }
   \   03FB  1814              JR      ?0102
   \   03FD            ?0100:
    458                  else
    459                  {
    460                      ///-ui_show_lock(1);    //这里不处理热键,防止嵌套
    461                      ui_show_lock(key - AP_MSG_UNLOCK);
   \   03FD  DD7EFE            LD      A,(IX-2)
   \   0400  C6E8              ADD     A,232
   \   0402  5F                LD      E,A
   \   0403  3E00              LD      A,BYTE3 ui_show_lock
   \   0405  210000            LD      HL,LWRD ui_show_lock
   \   0408  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    462                      return RESULT_REDRAW;
   \   040B  2E32              LD      L,50
    463                  }
   \   040D  1802              JR      ?0102
   \   040F            ?0101:
    464              default:
    465                  //here just drop the key
    466                  return 0;
   \   040F  2E00              LD      L,0
    467              }
   \   0411            ?0102:
   \   0411  DDF9              LD      SP,IX
   \   0413  DDE1              POP     IX
   \   0415  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0418            ?0092:
    468          }
   \   0000                    RSEG    UDATA0
   \   0000            g_EarProtect_flag:
   \   0001                    DEFS    1
   \   0001            EarProtectThreshold:
   \   0002                    DEFS    1
   \   0002            g_autoswitch_time:
   \   0004                    DEFS    2
   \   0000                    RSEG    IDATA0
   \   0000            g_decrease_time:
   \   0001                    DEFS    1
   \   0001            g_half_hour_counter:
   \   0003                    DEFS    2
   \   0003            g_autoswitch_counter:
   \   0005                    DEFS    2
   \   0005            g_light_time:
   \   0006                    DEFS    1
   \   0006            g_light_mode:
   \   0007                    DEFS    1
   \   0007            g_contrast_num:
   \   0008                    DEFS    1
   \   0008            g_sleep_time:
   \   000A                    DEFS    2
   \   000A            g_standby_time:
   \   000C                    DEFS    2
   \   000C            g_rtc_counter:
   \   000E                    DEFS    2
   \   000E            g_light_flag:
   \   000F                    DEFS    1
   \   000F            ?0012:
   \   0011                    DEFS    2
   \   0011            ?0013:
   \   0012                    DEFS    1
   \   0000                    RSEG    CDATA0
   \   0000  00                DEFB    0
   \   0001  0000              DEFW    0
   \   0003  0000              DEFW    0
   \   0005  00                DEFB    0
   \   0006  00                DEFB    0
   \   0007  00                DEFB    0
   \   0008  0000              DEFW    0
   \   000A  0000              DEFW    0
   \   000C  0000              DEFW    0
   \   000E  01                DEFB    1
   \   000F  0000              DEFW    0
   \   0011  00                DEFB    0
   \   0012                    END

Errors: none
Warnings: none
Code size: 1048
Constant size: 18
Static variable size: Data(22) Iram(0)

⌨️ 快捷键说明

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