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

📄 autosearchhandle.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   049B  DD36F800          LD      (IX-8),0
   \   049F            ?0120:
    388                  }
    389          
    390                  if (AutoTabNum >= 20) // 已搜到20个电台,正常退出.
   \   049F  3A2800            LD      A,(AutoTabNum)
   \   04A2  FE14              CP      20
   \   04A4  3804              JR      C,?0124
   \   04A6            ?0123:
    391                      loop = FALSE;
   \   04A6  DD36FA00          LD      (IX-6),0
   \   04AA            ?0124:
    392                  if (loop)
   \   04AA  AF                XOR     A
   \   04AB  DDB6FA            OR      (IX-6)
   \   04AE  CA8C03            JP      Z,?0053
   \   04B1            ?0125:
    393                  {
    394                      key = ap_get_message();
   \   04B1  CD0000            CALL    LWRD ap_get_message
   \   04B4  4F                LD      C,A
   \   04B5  0600              LD      B,0
   \   04B7  C5                PUSH    BC
   \   04B8  FDE1              POP     IY
    395                      switch (key)
   \   04BA  3E1D              LD      A,29
   \   04BC  A9                XOR     C
   \   04BD  CA8C03            JP      Z,?0053
    396                      {
    397                          bool Search_Flag = FALSE;
   \   04C0            ?0128:
    398                          case AP_MSG_STANDBY:
    399                          //do nothing
    400                          break;
   \   04C0            ?0129:
   \   04C0  3E21              LD      A,33
   \   04C2  A9                XOR     C
   \   04C3  2805              JR      Z,?0136
   \   04C5  3E27              LD      A,39
   \   04C7  A9                XOR     C
   \   04C8  200A              JR      NZ,?0130
   \   04CA            ?0136:
    401                          case AP_KEY_PLAY | AP_KEY_UP:
    402                          case AP_KEY_MODE | AP_KEY_UP: // 保存电台, 返回播放界面.
    403                          loop = FALSE;
    404                          key = RESULT_IGNORE;
   \   04CA  DD70FA            LD      (IX-6),B
   \   04CD  FD213000          LD      IY,48
    405                          break;
   \   04D1  C38C03            JP      LWRD ?0053
   \   04D4            ?0130:
    406                          default: //热键处理
    407                          key = ap_handle_hotkey(key);
   \   04D4  FDE5              PUSH    IY
   \   04D6  E1                POP     HL
   \   04D7  5D                LD      E,L
   \   04D8  CD0000            CALL    LWRD ap_handle_hotkey
   \   04DB  4F                LD      C,A
   \   04DC  C5                PUSH    BC
   \   04DD  FDE1              POP     IY
    408                          if (key == RESULT_REDRAW)
   \   04DF  3E2E              LD      A,46
   \   04E1  A9                XOR     C
   \   04E2  2007              JR      NZ,?0132
   \   04E4            ?0131:
    409                              need_draw = TRUE;
   \   04E4  DD36F801          LD      (IX-8),1
   \   04E8  C38C03            JP      LWRD ?0053
   \   04EB            ?0132:
    410                          else if (key != 0)
   \   04EB  FDE5              PUSH    IY
   \   04ED  E1                POP     HL
   \   04EE  7D                LD      A,L
   \   04EF  B4                OR      H
   \   04F0  CA8C03            JP      Z,?0053
   \   04F3            ?0134:
    411                          {
    412                              loop = FALSE;
   \   04F3  DD70FA            LD      (IX-6),B
   \   04F6            ?0135:
   \   04F6            ?0133:
   \   04F6            ?0127:
   \   04F6            ?0126:
   \   04F6  C38C03            JP      LWRD ?0053
   \   04F9            ?0052:
    413                          }
    414                      } // end switch(key)
    415                  } // end if(loop)
    416              } // end while(loop)
    417              if (AutoTabNum > 0)
   \   04F9  3A2800            LD      A,(AutoTabNum)
   \   04FC  B7                OR      A
   \   04FD  284B              JR      Z,?0138
   \   04FF            ?0137:
    418              {
    419                  memcpy(radio_param.param1, FMAutoTab, AutoTabNum * 2);
   \   04FF  6F                LD      L,A
   \   0500  2600              LD      H,0
   \   0502  29                ADD     HL,HL
   \   0503  4D                LD      C,L
   \   0504  79                LD      A,C
   \   0505  44                LD      B,H
   \   0506  ED5B0000          LD      DE,(radio_param)
   \   050A  210000            LD      HL,FMAutoTab
   \   050D  B0                OR      B
   \   050E  2802              JR      Z,?0176
   \   0510  EDB0              LDIR
   \   0512            ?0176:
    420                  //if(FMStatus.station_count < AutoTabNum)
    421                  if (temp < AutoTabNum) // 覆盖所有电台
   \   0512  3A2800            LD      A,(AutoTabNum)
   \   0515  47                LD      B,A
   \   0516  DD7EFC            LD      A,(IX-4)
   \   0519  B8                CP      B
   \   051A  3003              JR      NC,?0140
   \   051C            ?0139:
    422                  {
    423                      FMStatus.station_count = AutoTabNum;
   \   051C  78                LD      A,B
   \   051D  1816              JR      ?0181
    424                  }
    425                  else
   \   051F            ?0140:
    426                  {
    427                      if (key == 0)
   \   051F  FDE5              PUSH    IY
   \   0521  E1                POP     HL
   \   0522  7D                LD      A,L
   \   0523  B4                OR      H
   \   0524  2004              JR      NZ,?0143
   \   0526            ?0142:
    428                      {
    429                          FMStatus.station_count = AutoTabNum;
   \   0526  78                LD      A,B
   \   0527  320400            LD      (FMStatus+4),A
   \   052A            ?0143:
    430                      }
    431                      if (key == RESULT_IGNORE) // 覆盖部分电台
   \   052A  3E30              LD      A,48
   \   052C  AD                XOR     L
   \   052D  B4                OR      H
   \   052E  2008              JR      NZ,?0147
   \   0530            ?0144:
    432                      {
    433                          if (temp != 0)
   \   0530  DDB6FC            OR      (IX-4)
   \   0533  2803              JR      Z,?0147
   \   0535            ?0146:
    434                              FMStatus.station_count = temp;
   \   0535            ?0181:
   \   0535  320400            LD      (FMStatus+4),A
   \   0538            ?0147:
   \   0538            ?0145:
   \   0538            ?0141:
    435                      }
    436                  }
    437                  FMStatus.freq = FMAutoTab[0];
   \   0538  2A0000            LD      HL,(FMAutoTab)
   \   053B  220100            LD      (FMStatus+1),HL
    438                  FMStatus.station = 0;
   \   053E  AF                XOR     A
   \   053F  320300            LD      (FMStatus+3),A
    439                  fmSendCommand(MC_RESTORE, (int) &radio_param);
   \   0542  010000            LD      BC,radio_param
   \   0545  1E45              LD      E,69
   \   0547  CD0C03            CALL    LWRD ?0191
   \   054A            ?0138:
    440              }
    441          
    442              if (key == RESULT_IGNORE)
   \   054A  FDE5              PUSH    IY
   \   054C  E1                POP     HL
   \   054D  3E30              LD      A,48
   \   054F  AD                XOR     L
   \   0550  B4                OR      H
   \   0551  2004              JR      NZ,?0149
   \   0553            ?0148:
    443              {
    444                  key = 0;
   \   0553  FD210000          LD      IY,0
   \   0557            ?0149:
    445              }
    446          
    447              //fmSendCommand(MC_MUTE,releaseMUTE);
    448              //fmSendCommand(MC_SETVOLUME,FMStatus.volume);
    449          
    450              if (FMStatus.station_count > 0x00) // 没有搜到电台退出的情况.
   \   0557  3A0400            LD      A,(FMStatus+4)
   \   055A  B7                OR      A
   \   055B  2820              JR      Z,?0151
   \   055D            ?0150:
    451              {
    452                  fmSendCommand(MC_STEP, UP);
   \   055D  010100            LD      BC,1
   \   0560  1E07              LD      E,7
   \   0562  CD0C03            CALL    LWRD ?0191
    453                  for (temp = 0; temp < 0xff; temp++) // 延迟
   \   0565  DD36FC00          LD      (IX-4),0
   \   0569            ?0153:
   \   0569  DD7EFC            LD      A,(IX-4)
   \   056C  FEFF              CP      255
   \   056E  3005              JR      NC,?0152
   \   0570            ?0154:
   \   0570  DD34FC            INC     (IX-4)
   \   0573  18F4              JR      ?0153
   \   0575            ?0152:
    454                  {
    455                  }
    456                  fmSendCommand(MC_BACKUP, (int) &radio_param);
   \   0575  010000            LD      BC,radio_param
   \   0578  1E44              LD      E,68
   \   057A  CD0C03            CALL    LWRD ?0191
   \   057D            ?0151:
    457              }
    458              return key;
   \   057D  FDE5              PUSH    IY
   \   057F  E1                POP     HL
    459          }
   \   0580  C3FA02            JP      LWRD ?0188
   \   0583            ?0193:
   \   0583  ED5B2800          LD      DE,(AutoTabNum)
   \   0587  1600              LD      D,0
   \   0589  13                INC     DE
   \   058A  3E00              LD      A,BYTE3 ShowStationCount
   \   058C  210000            LD      HL,LWRD ShowStationCount
   \   058F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0592  3E00              LD      A,BYTE3 TryPlayingHandle
   \   0594  210000            LD      HL,LWRD TryPlayingHandle
   \   0597  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   059A  E5                PUSH    HL
   \   059B  FDE1              POP     IY
   \   059D  3E00              LD      A,BYTE3 CleanStationCount
   \   059F  217A00            LD      HL,LWRD CleanStationCount
   \   05A2  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    460          
   \   0000                    RSEG    CSTR
   \   0000            ?0004:
   \   0000  5B                DEFB    '['
   \   0001  00                DEFB    0
   \   0002            ?0005:
   \   0002  4348              DEFB    'CH'
   \   0004  00                DEFB    0
   \   0005            ?0006:
   \   0005  5D                DEFB    ']'
   \   0006  00                DEFB    0
   \   0007            ?0011:
   \   0007  3C                DEFB    '<'
   \   0008  00                DEFB    0
   \   0009            ?0012:
   \   0009  464D              DEFB    'FM'
   \   000B  00                DEFB    0
   \   000C            ?0019:
   \   000C  2E                DEFB    '.'
   \   000D  00                DEFB    0
   \   000E            ?0020:
   \   000E  3E                DEFB    '>'
   \   000F  00                DEFB    0
   \   0000                    RSEG    CONST
   \   0000            ?0007:
   \   0000  20202020          DEFB    '      '
   \   0004  2020
   \   0006  00                DEFB    0
   \   0007            ?0008:
   \   0007  464D              DEFB    'FM'
   \   0009  00                DEFB    0
   \   000A  00                DEFB    0
   \   0000                    RSEG    UDATA0
   \   0000            FMAutoTab:
   \   0028                    DEFS    40
   \   0028            AutoTabNum:
   \   0029                    DEFS    1
   \   0029                    END

Errors: none
Warnings: none
Code size: 1445
Constant size: 27
Static variable size: Data(41) Iram(0)

⌨️ 快捷键说明

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