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

📄 searchhandle.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Feb/109  14:15:34 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d95f\ap\ap_radio\searchhandle.c           #
#       List file     =  d:\case_i_d95f\ap\ap_radio\list\searchhandle.lst    #
#       Object file   =  d:\case_i_d95f\ap\ap_radio\obj\searchhandle.r01     #
#       ASM file      =  d:\case_i_d95f\ap\ap_radio\list\searchhandle.s01    #
#       Command line  =  -v0 -mb -OD:\case_i_d95f\ap\ap_radio\Obj\ -e -K -w  #
#                        -gA -s9 -RCODE -r0 -DNAPDEBUG                       #
#                        -LD:\case_i_d95f\ap\ap_radio\List\ -q -t8           #
#                        -AD:\case_i_d95f\ap\ap_radio\List\                  #
#                        -Id:\sdk_i_95f\inc\ -Id:\case_i_d95f\inc\           #
#                        d:\case_i_d95f\ap\ap_radio\SearchHandle.c           #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    searchhandle(17)
   \   0000                    RSEG    CODE_1(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    EXTERN  ClearScreen
   \   0000                    EXTERN  FMStatus
   \   0000                    EXTERN  Freqtab
   \   0000                    EXTERN  GetBattery
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResShowPic
   \   0000                    PUBLIC  SearchHandle
   \   0000                    PUBLIC  Search_Show
   \   0000                    EXTERN  SetTextPos
   \   0000                    PUBLIC  ShowFreqInFM
   \   0000                    EXTERN  UpdateScreen
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  fmSendCommand
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  itoa_1
   \   0000                    EXTERN  itoa_2
   \   0000                    EXTERN  itoa_3
   \   0000                    EXTERN  radio_param
   \   0000                    EXTERN  ui_show_batt
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?US_DIV_L02
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?SS_MOD_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    EXTERN  ?STRCAT_L11
   \   0000                    RSEG    CODE_1
   \   0000            SearchHandle:
      1          /*
      2           *******************************************************************************
      3           *                ACTOS AP
      4           *        main ap of sdk 3.0
      5           *
      6           *        (c) Copyright, Actions Co,Ld.
      7           *             All Right Reserved
      8           *
      9           *******************************************************************************
     10           */
     11          
     12          #pragma codeseg(CODE_1)
     13          
     14          #include "ap_radio.h"
     15          #include "actos.h"
     16          extern comval_t F_comval;
     17          extern fm_play_status_t FMStatus;
     18          extern FMRADIO_param_t radio_param;
     19          extern char Freqtab[10];
     20          void ShowFreqInFM(void); //FM主界面显示
     21          bool Search_Show(FM_direct_t Direct); //自动搜台时的显示
     22          
     23          
     24          extern FMStatus_Tab_t d_FMStatus; 
     25          extern char SearchFreq;
     26          extern char SetFreq;
     27          
     28          int SearchHandle(BYTE Direct)
     29          {
   \   0000  C5                PUSH    BC
   \   0001  DDE5              PUSH    IX
   \   0003  F5                PUSH    AF
   \   0004  53                LD      D,E
     30              int key;
     31              bool need_draw = TRUE;
     32              BYTE Searchflag = 1;
   \   0005  210100            LD      HL,1
   \   0008  39                ADD     HL,SP
   \   0009  3601              LD      (HL),1
   \   000B  2B                DEC     HL
   \   000C  3601              LD      (HL),1
   \   000E            ?0003:
     33              while (1)
     34              {
     35                  if (Direct != 0)
   \   000E  14                INC     D
   \   000F  15                DEC     D
   \   0010  CAB600            JP      Z,?0038
   \   0013            ?0005:
     36                  {
     37                      if (Direct == 10) //NEXT搜索处理
   \   0013  7A                LD      A,D
   \   0014  FE0A              CP      10
   \   0016  203C              JR      NZ,?0008
   \   0018            ?0007:
     38                      {
     39                          if(((FMStatus.freq+1)>210)&&(FMStatus.mode==0))FMStatus.freq=0;
   \   0018  ED4B0100          LD      BC,(FMStatus+1)
   \   001C  03                INC     BC
   \   001D  21D200            LD      HL,210
   \   0020  A7                AND     A
   \   0021  ED42              SBC     HL,BC
   \   0023  3006              JR      NC,?0010
   \   0025  3A0500            LD      A,(FMStatus+5)
   \   0028  B7                OR      A
   \   0029  280E              JR      Z,?0109
   \   002B            ?0012:
   \   002B            ?0011:
   \   002B            ?0009:
   \   002B            ?0010:
     40                          else if(((FMStatus.freq+1)>140)&&(FMStatus.mode==1))FMStatus.freq=0;
   \   002B  218C00            LD      HL,140
   \   002E  A7                AND     A
   \   002F  ED42              SBC     HL,BC
   \   0031  300A              JR      NC,?0015
   \   0033  3A0500            LD      A,(FMStatus+5)
   \   0036  3D                DEC     A
   \   0037  2004              JR      NZ,?0015
   \   0039            ?0017:
   \   0039            ?0016:
   \   0039            ?0014:
   \   0039            ?0109:
   \   0039  6F                LD      L,A
   \   003A  67                LD      H,A
   \   003B  1802              JR      ?0103
     41                          else
   \   003D            ?0015:
     42                          {
     43                              FMStatus.freq+=1;
   \   003D  69                LD      L,C
   \   003E  60                LD      H,B
   \   003F            ?0103:
   \   003F  220100            LD      (FMStatus+1),HL
   \   0042            ?0018:
   \   0042            ?0013:
     44                          }
     45                          if(Search_Show(UP))return 0;
   \   0042  D5                PUSH    DE
   \   0043  1E01              LD      E,1
   \   0045  3E00              LD      A,BYTE3 Search_Show
   \   0047  215601            LD      HL,LWRD Search_Show
   \   004A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   004D  2C                INC     L
   \   004E  2D                DEC     L
   \   004F  D1                POP     DE
   \   0050  2864              JR      Z,?0038
   \   0052            ?0019:
   \   0052  185C              JR      ?0107
     46                      }
   \   0054            ?0020:
   \   0054            ?0008:
     47                      else if (Direct == 20) //LAST搜索处理
   \   0054  FE14              CP      20
   \   0056  2054              JR      NZ,?0023
   \   0058            ?0022:
     48                      {
     49                          if(((FMStatus.freq-1)<2)&&(FMStatus.mode==0))FMStatus.freq=210;
   \   0058  2A0100            LD      HL,(FMStatus+1)
   \   005B  01FFFF            LD      BC,65535
   \   005E  09                ADD     HL,BC
   \   005F  010200            LD      BC,2
   \   0062  A7                AND     A
   \   0063  ED42              SBC     HL,BC
   \   0065  300B              JR      NC,?0025
   \   0067  3A0500            LD      A,(FMStatus+5)
   \   006A  B7                OR      A
   \   006B  2005              JR      NZ,?0025
   \   006D            ?0027:
   \   006D            ?0026:
   \   006D            ?0024:
   \   006D  21D200            LD      HL,210
   \   0070  1818              JR      ?0105
   \   0072            ?0025:
     50                          else if(((FMStatus.freq-1)<2)&&(FMStatus.mode==1))FMStatus.freq=140;
   \   0072  2A0100            LD      HL,(FMStatus+1)
   \   0075  01FFFF            LD      BC,65535
   \   0078  09                ADD     HL,BC
   \   0079  010200            LD      BC,2
   \   007C  A7                AND     A
   \   007D  ED42              SBC     HL,BC
   \   007F  300E              JR      NC,?0030
   \   0081  3A0500            LD      A,(FMStatus+5)
   \   0084  3D                DEC     A
   \   0085  2008              JR      NZ,?0030
   \   0087            ?0032:
   \   0087            ?0031:
   \   0087            ?0029:
   \   0087  218C00            LD      HL,140
   \   008A            ?0105:
   \   008A  220100            LD      (FMStatus+1),HL
     51                          else
   \   008D  180C              JR      ?0033
   \   008F            ?0030:
     52                          {
     53                              FMStatus.freq-=1;
   \   008F  210100            LD      HL,FMStatus+1
   \   0092  7E                LD      A,(HL)
   \   0093  C6FF              ADD     A,255
   \   0095  77                LD      (HL),A
   \   0096  23                INC     HL
   \   0097  7E                LD      A,(HL)
   \   0098  CEFF              ADC     A,255
   \   009A  77                LD      (HL),A
   \   009B            ?0033:
   \   009B            ?0028:
     54                          }
     55                          if(Search_Show(DOWN))return 0;
   \   009B  D5                PUSH    DE
   \   009C  58                LD      E,B
   \   009D  3E00              LD      A,BYTE3 Search_Show
   \   009F  215601            LD      HL,LWRD Search_Show
   \   00A2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00A5  2C                INC     L
   \   00A6  2D                DEC     L
   \   00A7  D1                POP     DE
   \   00A8  280C              JR      Z,?0038
   \   00AA            ?0034:
   \   00AA  1804              JR      ?0107
     56                      }
   \   00AC            ?0035:
   \   00AC            ?0023:
     57                      else if (Direct == 50)
   \   00AC  FE32              CP      50
   \   00AE  2006              JR      NZ,?0038
   \   00B0            ?0037:
     58                      {
     59                          Direct = 0;
     60                          return 0;
   \   00B0            ?0107:
   \   00B0  210000            LD      HL,0
     61                      }
   \   00B3  C34201            JP      LWRD ?0065
   \   00B6            ?0038:
   \   00B6            ?0036:
   \   00B6            ?0021:
   \   00B6            ?0006:
     62                  }
     63                  if (need_draw) //显示
   \   00B6  210100            LD      HL,1
   \   00B9  39                ADD     HL,SP
   \   00BA  AF                XOR     A
   \   00BB  B6                OR      (HL)
   \   00BC  280E              JR      Z,?0040
   \   00BE            ?0039:
     64                  {
     65                      ShowFreqInFM();
   \   00BE  3E00              LD      A,BYTE3 ShowFreqInFM
   \   00C0  21CA01            LD      HL,LWRD ShowFreqInFM
   \   00C3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     66                      need_draw = FALSE;
   \   00C6  210100            LD      HL,1
   \   00C9  39                ADD     HL,SP
   \   00CA  3600              LD      (HL),0
   \   00CC            ?0040:
     67                  }
     68                  key = ap_get_message();
   \   00CC  CD0000            CALL    LWRD ap_get_message
   \   00CF  4F                LD      C,A
   \   00D0  0600              LD      B,0
   \   00D2  C5                PUSH    BC
   \   00D3  DDE1              POP     IX
     69                  switch (key)
   \   00D5  3E1D              LD      A,29
   \   00D7  A9                XOR     C
   \   00D8  CA0E00            JP      Z,?0003
   \   00DB            ?0042:
     70                  {
     71                      case AP_MSG_STANDBY:
     72                      //do nothing
     73                      break;
   \   00DB            ?0043:
   \   00DB  3E26              LD      A,38
   \   00DD  A9                XOR     C
   \   00DE  2018              JR      NZ,?0051

⌨️ 快捷键说明

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