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

📄 basal_fmradio.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   01C4  DD36F800          LD      (IX-8),0
   \   01C8  FD210000          LD      IY,0
   \   01CC            ?0064:
   \   01CC  011480            LD      BC,32788
   \   01CF  FDE5              PUSH    IY
   \   01D1  E1                POP     HL
   \   01D2  78                LD      A,B
   \   01D3  AC                XOR     H
   \   01D4  67                LD      H,A
   \   01D5  ED42              SBC     HL,BC
   \   01D7  D20104            JP      NC,?0000
   \   01DA            ?0065:
    158                      {
    159                          if (m_FMStationTab[i] != 0)
   \   01DA  FDE5              PUSH    IY
   \   01DC  E1                POP     HL
   \   01DD  29                ADD     HL,HL
   \   01DE  010000            LD      BC,m_FMStationTab
   \   01E1  09                ADD     HL,BC
   \   01E2  7E                LD      A,(HL)
   \   01E3  23                INC     HL
   \   01E4  B6                OR      (HL)
   \   01E5  2803              JR      Z,?0068
   \   01E7            ?0067:
    160                              k++;
   \   01E7  DD34F8            INC     (IX-8)
   \   01EA            ?0068:
    161                          if (k == m_FMPlaystatus.station)
   \   01EA  3A2B00            LD      A,(m_FMPlaystatus+3)
   \   01ED  47                LD      B,A
   \   01EE  DD7EF8            LD      A,(IX-8)
   \   01F1  B8                CP      B
   \   01F2  200B              JR      NZ,?0070
   \   01F4            ?0069:
    162                          {
    163                              m_FMStationTab[i] = m_FMPlaystatus.freq;
   \   01F4  FDE5              PUSH    IY
   \   01F6  E1                POP     HL
   \   01F7  29                ADD     HL,HL
   \   01F8  010000            LD      BC,m_FMStationTab
   \   01FB  09                ADD     HL,BC
   \   01FC  C3F403            JP      LWRD ?0138
    164                              break;
   \   01FF            ?0070:
    165                          }
    166                      }
    167                  }
   \   01FF  FD23              INC     IY
   \   0201  18C9              JR      ?0064
   \   0203            ?0063:
   \   0203            ?0062:
    168                  else if (m_FMPlaystatus.station_count > 19)
   \   0203  3A2C00            LD      A,(m_FMPlaystatus+4)
   \   0206  47                LD      B,A
   \   0207  3E13              LD      A,19
   \   0209  B8                CP      B
   \   020A  DA4203            JP      C,?0128
   \   020D            ?0072:
    169                      return FALSE;
    170                  else //新的电台频率保存到电台表
   \   020D            ?0073:
    171                  {
    172                      m_FMPlaystatus.station_count++;
   \   020D  212C00            LD      HL,m_FMPlaystatus+4
   \   0210  34                INC     (HL)
    173                      for (i = 0; i < 20; i++)
   \   0211  FD210000          LD      IY,0
   \   0215            ?0075:
   \   0215  011480            LD      BC,32788
   \   0218  FDE5              PUSH    IY
   \   021A  E1                POP     HL
   \   021B  78                LD      A,B
   \   021C  AC                XOR     H
   \   021D  67                LD      H,A
   \   021E  ED42              SBC     HL,BC
   \   0220  D20104            JP      NC,?0000
   \   0223            ?0076:
    174                      {
    175                          if (m_FMStationTab[i] == 0)
   \   0223  FDE5              PUSH    IY
   \   0225  E1                POP     HL
   \   0226  29                ADD     HL,HL
   \   0227  010000            LD      BC,m_FMStationTab
   \   022A  09                ADD     HL,BC
   \   022B  7E                LD      A,(HL)
   \   022C  23                INC     HL
   \   022D  B6                OR      (HL)
   \   022E  2014              JR      NZ,?0079
   \   0230            ?0078:
    176                          {
    177                              m_FMStationTab[i] = m_FMPlaystatus.freq;
   \   0230  FDE5              PUSH    IY
   \   0232  E1                POP     HL
   \   0233  29                ADD     HL,HL
   \   0234  09                ADD     HL,BC
   \   0235  ED4B2900          LD      BC,(m_FMPlaystatus+1)
   \   0239  71                LD      (HL),C
   \   023A  23                INC     HL
   \   023B  70                LD      (HL),B
    178                              m_FMPlaystatus.station = i + 1;
   \   023C  FDE5              PUSH    IY
   \   023E  E1                POP     HL
   \   023F  2C                INC     L
   \   0240  7D                LD      A,L
   \   0241  C39403            JP      LWRD ?0136
    179                              break;
   \   0244            ?0079:
    180                          }
    181                      }
    182                  }
   \   0244  FD23              INC     IY
   \   0246  18CD              JR      ?0075
   \   0248            ?0074:
   \   0248            ?0071:
    183          
    184                  return TRUE;
    185                  case MC_SETMODE:
   \   0248            ?0080:
    186                  m_FMPlaystatus.mode = (Station_bank_t) param;
   \   0248  79                LD      A,C
   \   0249  322D00            LD      (m_FMPlaystatus+5),A
    187                  break;
   \   024C  C30104            JP      LWRD ?0000
   \   024F            ?0081:
    188                  case MC_SETVOLUME:
    189                  BankSwitch(address_24_of(FM_VolumeSet) >> 16);
   \   024F  210000            LD      HL,FM_VolumeSet
   \   0252  0E00              LD      C,BYTE3 FM_VolumeSet
   \   0254  CD2504            CALL    LWRD ?0141
    190                  FM_VolumeSet((BYTE) param);
   \   0257  DD5EFE            LD      E,(IX-2)
   \   025A  CD0000            CALL    LWRD FM_VolumeSet
    191                  m_FMPlaystatus.volume = (BYTE) param;
   \   025D  DD7EFE            LD      A,(IX-2)
   \   0260  322E00            LD      (m_FMPlaystatus+6),A
    192                  break;
   \   0263  C30104            JP      LWRD ?0000
   \   0266            ?0082:
    193                  case MC_BACKUP:
    194                  memcpy((void *) (*(WORD *) param), m_FMStationTab, 40);
   \   0266  012800            LD      BC,40
   \   0269  DD6EFE            LD      L,(IX-2)
   \   026C  DD66FF            LD      H,(IX-1)
   \   026F  5E                LD      E,(HL)
   \   0270  23                INC     HL
   \   0271  56                LD      D,(HL)
   \   0272  210000            LD      HL,m_FMStationTab
   \   0275  EDB0              LDIR
    195                  memcpy((void *) (*(WORD *) (param + 2)), &m_FMPlaystatus, sizeof(fm_play_status_t));
   \   0277  0E09              LD      C,9
   \   0279  DD6EFE            LD      L,(IX-2)
   \   027C  DD66FF            LD      H,(IX-1)
   \   027F  23                INC     HL
   \   0280  23                INC     HL
   \   0281  5E                LD      E,(HL)
   \   0282  23                INC     HL
   \   0283  56                LD      D,(HL)
   \   0284  C32603            JP      LWRD ?0132
    196                  break;
   \   0287            ?0083:
    197          
    198                  case MC_RESTORE:
    199                  memcpy(m_FMStationTab, (void *) (*(WORD *) param), 40);
   \   0287  012800            LD      BC,40
   \   028A  110000            LD      DE,m_FMStationTab
   \   028D  DD6EFE            LD      L,(IX-2)
   \   0290  DD66FF            LD      H,(IX-1)
   \   0293  7E                LD      A,(HL)
   \   0294  23                INC     HL
   \   0295  66                LD      H,(HL)
   \   0296  6F                LD      L,A
   \   0297  EDB0              LDIR
    200                  memcpy(&m_FMPlaystatus, (void *) (*(WORD *) (param + 2)), sizeof(fm_play_status_t));
   \   0299  0E09              LD      C,9
   \   029B  112800            LD      DE,m_FMPlaystatus
   \   029E  DD6EFE            LD      L,(IX-2)
   \   02A1  DD66FF            LD      H,(IX-1)
   \   02A4  23                INC     HL
   \   02A5  23                INC     HL
   \   02A6  7E                LD      A,(HL)
   \   02A7  23                INC     HL
   \   02A8  66                LD      H,(HL)
   \   02A9  6F                LD      L,A
   \   02AA  C33703            JP      LWRD ?0121
    201                  break;
   \   02AD            ?0084:
    202          
    203                  case MC_GETSTATUS:
    204                  BankSwitch(address_24_of(FM_GetStatus) >> 16);
   \   02AD  210000            LD      HL,FM_GetStatus
   \   02B0  0E00              LD      C,BYTE3 FM_GetStatus
   \   02B2  CD2504            CALL    LWRD ?0141
    205                  FM_GetStatus(&d_FMStatus);
   \   02B5  113100            LD      DE,d_FMStatus
   \   02B8  CD0000            CALL    LWRD FM_GetStatus
    206                  m_FMPlaystatus.freq=d_FMStatus.FM_CurrentFreq;  //rda chenggangdeng
   \   02BB  2A3200            LD      HL,(d_FMStatus+1)
   \   02BE  222900            LD      (m_FMPlaystatus+1),HL
    207                  m_FMPlaystatus.stereo_status = d_FMStatus.FM_Stereo_Status;
   \   02C1  3A3100            LD      A,(d_FMStatus)
   \   02C4  322F00            LD      (m_FMPlaystatus+7),A
    208                     k=0; 
    209                     //当前电台频率值和电台表中某一频率差距小于150KHZ,此电台和此电台表对应         
    210                     for(i=0;i<20;i++)
   \   02C7  DD36F800          LD      (IX-8),0
   \   02CB  FD210000          LD      IY,0
   \   02CF            ?0086:
   \   02CF  011480            LD      BC,32788
   \   02D2  FDE5              PUSH    IY
   \   02D4  E1                POP     HL
   \   02D5  78                LD      A,B
   \   02D6  AC                XOR     H
   \   02D7  67                LD      H,A
   \   02D8  ED42              SBC     HL,BC
   \   02DA  3041              JR      NC,?0085
   \   02DC            ?0087:
    211                     {
    212                         m_FMPlaystatus.station=0;
   \   02DC  AF                XOR     A
   \   02DD  322B00            LD      (m_FMPlaystatus+3),A
    213                         if(m_FMStationTab[i]!=0)
   \   02E0  FDE5              PUSH    IY
   \   02E2  E1                POP     HL
   \   02E3  29                ADD     HL,HL
   \   02E4  010000            LD      BC,m_FMStationTab
   \   02E7  09                ADD     HL,BC
   \   02E8  7E                LD      A,(HL)
   \   02E9  23                INC     HL
   \   02EA  B6                OR      (HL)
   \   02EB  282C              JR      Z,?0092
   \   02ED            ?0089:
    214                         {
    215                             k++;
   \   02ED  DD34F8            INC     (IX-8)
    216                             if(abs(m_FMPlaystatus.freq-m_FMStationTab[i])<1)
   \   02F0  FDE5              PUSH    IY
   \   02F2  E1                POP     HL
   \   02F3  29                ADD     HL,HL
   \   02F4  09                ADD     HL,BC
   \   02F5  4E                LD      C,(HL)
   \   02F6  23                INC     HL
   \   02F7  46                LD      B,(HL)
   \   02F8  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   02FB  A7                AND     A
   \   02FC  ED42              SBC     HL,BC
   \   02FE  EB                EX      DE,HL
   \   02FF  3E00              LD      A,BYTE3 abs
   \   0301  210000            LD      HL,LWRD abs
   \   0304  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0307  010180            LD      BC,32769
   \   030A  78                LD      A,B
   \   030B  AC                XOR     H
   \   030C  67                LD      H,A
   \   030D  ED42              SBC     HL,BC
   \   030F  3008              JR      NC,?0092

⌨️ 快捷键说明

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