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

📄 ap_message2_formusic.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:34 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ap_message2_formusic.c     #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ap_message2_formusic.lst#
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ap_message2_formusic.r01#
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ap_message2_formusic.s01#
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w  #
#                        -gA -z9 -RCODE -r0 -DNAPDEBUG                       #
#                        -LD:\case_i_d90f\ap\ap_music\List\ -q -t8           #
#                        -AD:\case_i_d90f\ap\ap_music\List\                  #
#                        -ND:\case_i_d90f\ap\ap_music\List\ -X               #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        D:\CASE_I_D90F\AP\COMMON\ap_message2_formusic.c     #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ap_message2_formusic(17)
   \   0000                    RSEG    COM_MSG(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  LightOnOff
   \   0000                    PUBLIC  Lightmodeset
   \   0000                    EXTERN  SetContrast
   \   0000                    PUBLIC  ap_del_event
   \   0000                    PUBLIC  ap_get_event
   \   0000                    EXTERN  ap_get_message
   \   0000                    PUBLIC  ap_get_message_core
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    PUBLIC  ap_handle_hotkey_core
   \   0000                    PUBLIC  ap_message_init
   \   0000                    PUBLIC  ap_set_event
   \   0000                    PUBLIC  ap_sleep
   \   0000                    PUBLIC  charge_flag
   \   0000                    PUBLIC  g_ap_event
   \   0000                    PUBLIC  g_contrast_num
   \   0000                    PUBLIC  g_light_flag
   \   0000                    PUBLIC  g_light_mode
   \   0000                    PUBLIC  g_light_time
   \   0000                    PUBLIC  g_rtc_counter
   \   0000                    PUBLIC  g_sleep_time
   \   0000                    PUBLIC  g_standby_time
   \   0000                    EXTERN  ui_run_realtime
   \   0000                    EXTERN  ui_show_lock
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?SS_CMP_L02
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_PARM_DIRECT_L09
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    COM_MSG
   \   0000            Lightmodeset:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        ap common lib message file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: ap_message2_formusic.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */
     12          #pragma codeseg(COM_MSG)
     13          
     14          #include "ap_common.h"
     15          //#define DEBUG
     16          //extern char couterkey;
     17          BYTE g_light_time=0;    //关背光时间,0.5秒为单位
     18          BYTE g_light_mode=0;    //关亮度模式,0:变暗,1:变黑
     19          BYTE g_contrast_num=0;  //对比度
     20          WORD g_sleep_time=0;    //睡眠时间,0.5秒为单位
     21          WORD g_standby_time=0;    //自动关机时间,0.5秒为单位
     22          WORD g_rtc_counter=0;    //rtc 消息计数
     23          BYTE charge_flag;
     24          extern  int DealPlayKey(void);
     25          extern bool g_Pausetostop;
     26          WORD g_ap_event=0;    //事件标志
     27          bool g_light_flag = TRUE;//背景灯开关标志。
     28          /*
     29            * 对于普通按键的处理存在隐患,如果os把普通按键的值定义到0x20 以上,
     30            * ap_get_message() 将不能正确处理, 正确的做法是用9个case, 不用default
     31            */
     32          #if  Msg_KeyEQ > 0x20  || Msg_KeyMenu > 0x20 || \
     33              Msg_KeyNext > 0x20 || Msg_KeyLast > 0x20 || \
     34              Msg_KeyVolAdd > 0x20 || Msg_KeyVolSub > 0x20 || \
     35              Msg_KeyPlayPause > 0x20 || Msg_KeyREC > 0x20 || Msg_KeyLoop > 0x20
     36          
     37          #error os define key greater than 0x20
     38          #endif
     39          void Lightmodeset(bool OnOff)
     40          {
   \   0000  D5                PUSH    DE
     41          
     42              if(g_light_mode==1)
   \   0001  3A0100            LD      A,(g_light_mode)
   \   0004  3D                DEC     A
   \   0005  2005              JR      NZ,?0005
   \   0007            ?0004:
     43              {
     44                  LightOnOff(OnOff);
   \   0007  CD0000            CALL    LWRD LightOnOff
     45              }
     46              else
   \   000A  180B              JR      ?0009
   \   000C            ?0005:
     47              {
     48                  if(!OnOff)SetContrast(0);
   \   000C  AF                XOR     A
   \   000D  B3                OR      E
   \   000E  2804              JR      Z,?0094
   \   0010            ?0007:
     49                  else
   \   0010            ?0008:
     50                      SetContrast(g_contrast_num);
   \   0010  ED5B0200          LD      DE,(g_contrast_num)
   \   0014            ?0094:
   \   0014  CD0000            CALL    LWRD SetContrast
   \   0017            ?0009:
   \   0017            ?0006:
     51          
     52              }
     53          
     54          }
   \   0017  E1                POP     HL
   \   0018  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   001B            ap_message_init:
     55          
     56          /*
     57          ********************************************************************************
     58          * Description : 初始化消息处理
     59          *
     60          * Arguments   : comval, 系统设定值, =null 表示只初始化内部计数器
     61          *
     62          * Returns     :
     63          *
     64          * Notes       :
     65          *
     66          ********************************************************************************
     67          */
     68          void ap_message_init(const comval_t *comval)
     69          {
   \   001B  C5                PUSH    BC
   \   001C  DDE5              PUSH    IX
   \   001E  D5                PUSH    DE
   \   001F  DDE1              POP     IX
     70          
     71              if(comval != NULL)
   \   0021  7B                LD      A,E
   \   0022  B2                OR      D
   \   0023  282B              JR      Z,?0011
   \   0025            ?0010:
     72              {
     73                  g_light_time = comval->LightTime * 2;
   \   0025  DD7E09            LD      A,(IX+9)
   \   0028  87                ADD     A,A
   \   0029  320000            LD      (g_light_time),A
     74                  g_light_mode = comval->Lightmode;
   \   002C  DD7E16            LD      A,(IX+22)
   \   002F  320100            LD      (g_light_mode),A
     75                  g_sleep_time = comval->SleepTime * 60 * 2;
   \   0032  DD4E0B            LD      C,(IX+11)
   \   0035  0600              LD      B,0
   \   0037  113C00            LD      DE,60
   \   003A  CD0000            CALL    LWRD ?S_MUL_L02
   \   003D  EB                EX      DE,HL
   \   003E  29                ADD     HL,HL
   \   003F  220300            LD      (g_sleep_time),HL
     76          
     77                  g_standby_time = comval->StandbyTime * 2;
   \   0042  DD6E0A            LD      L,(IX+10)
   \   0045  60                LD      H,B
   \   0046  29                ADD     HL,HL
   \   0047  220500            LD      (g_standby_time),HL
     78                  g_contrast_num =  comval->DisplayContrast;
   \   004A  DD7E08            LD      A,(IX+8)
   \   004D  320200            LD      (g_contrast_num),A
   \   0050            ?0011:
     79              }
     80          
     81              g_rtc_counter = 0;
   \   0050  210000            LD      HL,0
   \   0053  220700            LD      (g_rtc_counter),HL
     82          //    g_light_flag = TRUE;
     83          }
   \   0056  DDE1              POP     IX
   \   0058  C1                POP     BC
   \   0059  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   005C            ap_get_message_core:
     84          
     85          
     86          /*
     87          ********************************************************************************
     88          * Description : 处理系统消息, 返回按键消息, 同时负责开/关背光
     89          *
     90          * Arguments   : key, 系统消息
     91          *
     92          * Returns     : 返回ap能够识别的消息, 如果没有系统消息, 返回 AP_KEY_NULL
     93          *
     94          * Notes       :
     95          
     96          * 按键时序:
     97           *  0.....1.2....1.5........... (s)
     98           *  key    long   hold    up    (>1.2s)
     99           *  key  up            (<1.2s)
    100           *
    101           * key rate: 0.3s
    102          *
    103          ********************************************************************************
    104          */
    105          char ap_get_message_core(char key)
    106          {
   \   005C  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
    107              static WORD key_count=0;        //当前按键消息发生的次数
    108              static char key_value=Msg_KeyNull;        //当前按键的值
    109          
    110              //和上次的一样
    111              if(key == key_value)
   \   005F  3A0E00            LD      A,(?0013)
   \   0062  47                LD      B,A
   \   0063  7B                LD      A,E
   \   0064  B8                CP      B
   \   0065  203A              JR      NZ,?0015
   \   0067            ?0014:
    112              {
    113                  //开背光
    114                  if (!g_light_flag)
   \   0067  3A0B00            LD      A,(g_light_flag)
   \   006A  B7                OR      A
   \   006B  200B              JR      NZ,?0017
   \   006D            ?0016:
    115                  {
    116                      //如背灯没开,不理按键
    117                      key_count = 0;
   \   006D  6F                LD      L,A
   \   006E  67                LD      H,A
   \   006F  220C00            LD      (?0012),HL
    118                      g_rtc_counter = 0;
   \   0072  220700            LD      (g_rtc_counter),HL
    119                      return NULL;
   \   0075  C3C601            JP      LWRD ?0097
    120                  }
   \   0078            ?0017:
    121          
    122                  g_rtc_counter = 0;
   \   0078  210000            LD      HL,0
   \   007B  220700            LD      (g_rtc_counter),HL
    123                  key_count++;
   \   007E  2A0C00            LD      HL,(?0012)
   \   0081  23                INC     HL
   \   0082  220C00            LD      (?0012),HL
    124                  //key rate: ...0.3...0.3...0.3...0.3
    125                  if(key_count == 4) key |= AP_KEY_LONG;    //=1.2s
   \   0085  3E04              LD      A,4
   \   0087  AD                XOR     L
   \   0088  B4                OR      H
   \   0089  2006              JR      NZ,?0019
   \   008B            ?0018:
   \   008B  DDCB02FE          SET     7,(IX+2)
   \   008F  180D              JR      ?0022
   \   0091            ?0019:
    126                  else if(key_count > 4) key |= AP_KEY_HOLD;
   \   0091  4D                LD      C,L
   \   0092  44                LD      B,H
   \   0093  210400            LD      HL,4
   \   0096  ED42              SBC     HL,BC
   \   0098  3004              JR      NC,?0022
   \   009A            ?0021:
   \   009A  DDCB02F6          SET     6,(IX+2)
   \   009E            ?0022:
   \   009E            ?0020:
    127                  return key;
   \   009E  C3CA01            JP      LWRD ?0057
    128              }
   \   00A1            ?0015:
    129          
    130          
    131          
    132              switch( key )
   \   00A1  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   00A4  0C00              DEFW    12
   \   00A6  00                DEFB    0
   \   00A7  22                DEFB    34
   \   00A8  24                DEFB    36
   \   00A9  30                DEFB    48
   \   00AA  31                DEFB    49
   \   00AB  80                DEFB    128
   \   00AC  81                DEFB    129
   \   00AD  82                DEFB    130
   \   00AE  91                DEFB    145
   \   00AF  92                DEFB    146
   \   00B0  B0                DEFB    176
   \   00B1  B1                DEFB    177
   \   00B2  AE01              DEFW    ?0055
   \   00B4  A801              DEFW    ?0054
   \   00B6  A201              DEFW    ?0053
   \   00B8  8201              DEFW    ?0050
   \   00BA  5801              DEFW    ?0045
   \   00BC  7C01              DEFW    ?0049
   \   00BE  EE00              DEFW    ?0027
   \   00C0  EE00              DEFW    ?0027
   \   00C2  CC00              DEFW    ?0024
   \   00C4  CC00              DEFW    ?0024
   \   00C6  8801              DEFW    ?0051
   \   00C8  8E01              DEFW    ?0052
   \   00CA  8801              DEFW    ?0051
   \   00CC            ?0024:
    133              {
    134              case Msg_KeyLongUp:
    135              case Msg_KeyShortUp:
    136                  key_count = 0;
   \   00CC  210000            LD      HL,0
   \   00CF  220C00            LD      (?0012),HL

⌨️ 快捷键说明

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