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

📄 autosearchhandle.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 5 页
字号:
    173                  for (i = 0; i < AutoTabNum; i++) // 检查是否在电台表中
   \   0284  FD210000          LD      IY,0
   \   0288            ?0027:
   \   0288  ED4B2800          LD      BC,(AutoTabNum)
   \   028C  0600              LD      B,0
   \   028E  FDE5              PUSH    IY
   \   0290  E1                POP     HL
   \   0291  F680              OR      128
   \   0293  ED42              SBC     HL,BC
   \   0295  E29902            JP      PO,?0174
   \   0298  AC                XOR     H
   \   0299            ?0174:
   \   0299  F2BD02            JP      P,?0026
   \   029C            ?0028:
    174                  {
    175                      if (FMAutoTab[i] == temp)
   \   029C  FDE5              PUSH    IY
   \   029E  E1                POP     HL
   \   029F  29                ADD     HL,HL
   \   02A0  010000            LD      BC,FMAutoTab
   \   02A3  09                ADD     HL,BC
   \   02A4  46                LD      B,(HL)
   \   02A5  23                INC     HL
   \   02A6  66                LD      H,(HL)
   \   02A7  68                LD      L,B
   \   02A8  DD4EFC            LD      C,(IX-4)
   \   02AB  DD46FD            LD      B,(IX-3)
   \   02AE  A7                AND     A
   \   02AF  ED42              SBC     HL,BC
   \   02B1  2006              JR      NZ,?0031
   \   02B3            ?0030:
    176                      {
    177                          Search_Flag = FALSE;
   \   02B3  DD36FA00          LD      (IX-6),0
    178                          break;
   \   02B7  1804              JR      ?0026
   \   02B9            ?0031:
   \   02B9  FD23              INC     IY
   \   02BB  18CB              JR      ?0027
   \   02BD            ?0026:
    179                      }
    180                  }
    181                  if (Search_Flag)
   \   02BD  AF                XOR     A
   \   02BE  DDB6FA            OR      (IX-6)
   \   02C1  2816              JR      Z,?0033
   \   02C3            ?0032:
    182                  {
    183                      if (FMStatus.volume)
   \   02C3  3A0600            LD      A,(FMStatus+6)
   \   02C6  B7                OR      A
   \   02C7  2808              JR      Z,?0035
   \   02C9            ?0034:
    184                          fmSendCommand(MC_MUTE, releaseMUTE);
   \   02C9  010000            LD      BC,0
   \   02CC  1E0C              LD      E,12
   \   02CE  CD0C03            CALL    LWRD ?0191
   \   02D1            ?0035:
    185                      fmSendCommand(MC_GETSTATUS, (int) &FMStatus);
   \   02D1  010000            LD      BC,FMStatus
   \   02D4  1E83              LD      E,131
   \   02D6  CD0C03            CALL    LWRD ?0191
   \   02D9            ?0033:
   \   02D9            ?0025:
    186                  }
    187              }
    188              ShowFreqInFM2();
   \   02D9  3E00              LD      A,BYTE3 ShowFreqInFM2
   \   02DB  21AB00            LD      HL,LWRD ShowFreqInFM2
   \   02DE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    189              for (i = 0; i < 0x3999; i++)
   \   02E1  FD210000          LD      IY,0
   \   02E5            ?0037:
   \   02E5  0199B9            LD      BC,47513
   \   02E8  FDE5              PUSH    IY
   \   02EA  E1                POP     HL
   \   02EB  3E80              LD      A,128
   \   02ED  AC                XOR     H
   \   02EE  67                LD      H,A
   \   02EF  ED42              SBC     HL,BC
   \   02F1  3004              JR      NC,?0036
   \   02F3            ?0038:
   \   02F3  FD23              INC     IY
   \   02F5  18EE              JR      ?0037
   \   02F7            ?0036:
    190              {
    191              }
    192              return Search_Flag;
   \   02F7  DD6EFA            LD      L,(IX-6)
    193          }
   \   02FA            ?0188:
   \   02FA  DDF9              LD      SP,IX
   \   02FC  DDE1              POP     IX
   \   02FE  FDE1              POP     IY
   \   0300  C1                POP     BC
   \   0301  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0304            ?0192:
   \   0304  ED4B0600          LD      BC,(FMStatus+6)
   \   0308  0600              LD      B,0
   \   030A  1E40              LD      E,64
   \   030C            ?0191:
   \   030C  3E00              LD      A,BYTE3 fmSendCommand
   \   030E  210000            LD      HL,LWRD fmSendCommand
   \   0311  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0314            RestartSearch:
    194          /*
    195           ********************************************************************************
    196           * Description : 设置门限值,重新开始搜索.
    197           *
    198           * Arguments   : 门限值
    199           *
    200           * Returns     : TRUE:继续搜索,FALSE:中断搜索,正常结束.
    201           *
    202           * Notes       :
    203           *
    204           ********************************************************************************
    205           */
    206          bool RestartSearch(byte level)
    207          {
   \   0314  C5                PUSH    BC
   \   0315  D5                PUSH    DE
    208              if (level <= 2)
   \   0316  3E02              LD      A,2
   \   0318  BB                CP      E
   \   0319  3804              JR      C,?0041
   \   031B            ?0040:
    209                  return FALSE;
   \   031B  2E00              LD      L,0
   \   031D  1815              JR      ?0042
   \   031F            ?0041:
    210              //fmSendCommand(MC_SETVOLUME,0);
    211              //fmSendCommand(MC_CLOSE,0);
    212              //fmSendCommand(MC_OPEN,level);
    213              fmSendCommand(MC_MUTE, SetMUTE);
   \   031F  010100            LD      BC,1
   \   0322  1E0C              LD      E,12
   \   0324  CD0C03            CALL    LWRD ?0191
    214              fmSendCommand(MC_SETVOLUME, FMStatus.volume);
   \   0327  CD0403            CALL    LWRD ?0192
    215              fmSendCommand(MC_RESTORE, (int) &radio_param);
   \   032A  010000            LD      BC,radio_param
   \   032D  1E45              LD      E,69
   \   032F  CD0C03            CALL    LWRD ?0191
    216              return TRUE;
   \   0332  2E01              LD      L,1
    217          }
   \   0334            ?0042:
   \   0334  F1                POP     AF
   \   0335  C1                POP     BC
   \   0336  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0339            AutoSearchHandle:
    218          /*
    219           ********************************************************************************
    220           * Description : 全自动搜索
    221           *
    222           * Arguments   : Direct,Next或Last搜索.
    223           *
    224           * Returns     : 如果有可识别的热键消息,  返回结果消息
    225           如果没有可识别的热键消息,  返回0
    226           *
    227           * Notes       :
    228           *
    229           ********************************************************************************
    230           */
    231          int AutoSearchHandle(BYTE Direct)
    232          {
   \   0339  C5                PUSH    BC
   \   033A  FDE5              PUSH    IY
   \   033C  DDE5              PUSH    IX
   \   033E  DD210000          LD      IX,0
   \   0342  DD39              ADD     IX,SP
   \   0344  D5                PUSH    DE
   \   0345  F5                PUSH    AF
   \   0346  F5                PUSH    AF
   \   0347  F5                PUSH    AF
   \   0348  F5                PUSH    AF
    233              int key;
    234              bool need_draw = TRUE;
    235              //BYTE    Searchflag=1;
    236              BYTE Search_Level = SearchLevel;
    237              bool loop = TRUE;
    238              BYTE Search_Loop = 2; //搜台的次数
    239              BYTE temp;
    240          
    241              AutoTabNum = 0; // 全自动搜索,从极值开始.
   \   0349  AF                XOR     A
   \   034A  322800            LD      (AutoTabNum),A
    242              fmSendCommand(MC_BACKUP, (int) &radio_param);
   \   034D  010000            LD      BC,radio_param
   \   0350  1E44              LD      E,68
   \   0352  CD0C03            CALL    LWRD ?0191
    243              if (FMStatus.mode == 0)
   \   0355  DD36F801          LD      (IX-8),1
   \   0359  DD36F903          LD      (IX-7),3
   \   035D  DD36FA01          LD      (IX-6),1
   \   0361  DD36FB02          LD      (IX-5),2
   \   0365  3A0500            LD      A,(FMStatus+5)
   \   0368  B7                OR      A
   \   0369  DD7EFE            LD      A,(IX-2)
   \   036C  2009              JR      NZ,?0044
   \   036E            ?0043:
    244              {
    245                  if (Direct == 10) // US频段
   \   036E  FE0A              CP      10
   \   0370  2809              JR      Z,?0186
   \   0372            ?0045:
    246                  {
    247                      FMStatus.freq = 0x00;
    248                  }
    249                  else
   \   0372            ?0046:
    250                  {
    251                      FMStatus.freq = 210;
   \   0372  21D200            LD      HL,210
   \   0375  180C              JR      ?0178
   \   0377            ?0047:
    252                  }
    253              }
    254              else
   \   0377            ?0044:
    255              { // JP频段
    256                  if (Direct == 10)
   \   0377  FE0A              CP      10
   \   0379  2005              JR      NZ,?0050
   \   037B            ?0049:
    257                  {
    258                      FMStatus.freq = 0;
   \   037B            ?0186:
   \   037B  210000            LD      HL,0
   \   037E  1803              JR      ?0178
    259                  }
    260                  else
   \   0380            ?0050:
    261                  {
    262                      FMStatus.freq = 140;
   \   0380  218C00            LD      HL,140
   \   0383            ?0178:
   \   0383  220100            LD      (FMStatus+1),HL
   \   0386            ?0051:
   \   0386            ?0048:
    263                  }
    264              }
    265          
    266              temp = FMStatus.station_count;
   \   0386  3A0400            LD      A,(FMStatus+4)
   \   0389  DD77FC            LD      (IX-4),A
   \   038C            ?0053:
    267              while (loop)
   \   038C  AF                XOR     A
   \   038D  DDB6FA            OR      (IX-6)
   \   0390  CAF904            JP      Z,?0052
   \   0393            ?0054:
    268              {
    269                  if (Direct != 0)
   \   0393  AF                XOR     A
   \   0394  DDB6FE            OR      (IX-2)
   \   0397  CA8704            JP      Z,?0118
   \   039A            ?0055:
    270                  {
    271                      if (Direct == 10) //NEXT搜索处理
   \   039A  FE0A              CP      10
   \   039C  C22D04            JP      NZ,?0058
   \   039F            ?0057:
    272                      {
    273                      if(((FMStatus.freq+1)>210)&&(FMStatus.mode==0))
   \   039F  ED4B0100          LD      BC,(FMStatus+1)
   \   03A3  03                INC     BC
   \   03A4  21D200            LD      HL,210
   \   03A7  A7                AND     A
   \   03A8  ED42              SBC     HL,BC
   \   03AA  3018              JR      NC,?0060
   \   03AC  3A0500            LD      A,(FMStatus+5)
   \   03AF  B7                OR      A
   \   03B0  2012              JR      NZ,?0060
   \   03B2            ?0062:
   \   03B2            ?0061:
   \   03B2            ?0059:
    274                          {
    275                              FMStatus.freq=0;
   \   03B2  6F                LD      L,A
   \   03B3  67                LD      H,A
   \   03B4  220100            LD      (FMStatus+1),HL
    276                              Search_Level--; // 以不同门限搜索.
   \   03B7  DD35F9            DEC     (IX-7)

⌨️ 快捷键说明

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