basal_fmradio.lst

来自「MP3 整个 SDK」· LST 代码 · 共 984 行 · 第 1/4 页

LST
984
字号
   \   00D8  212B00            LD      HL,m_FMPlaystatus+3
   \   00DB  35                DEC     (HL)
     64                         for(i=0;i<20;i++)
   \   00DC  FD210000          LD      IY,0
   \   00E0            ?0024:
   \   00E0  011480            LD      BC,32788
   \   00E3  FDE5              PUSH    IY
   \   00E5  E1                POP     HL
   \   00E6  78                LD      A,B
   \   00E7  AC                XOR     H
   \   00E8  67                LD      H,A
   \   00E9  ED42              SBC     HL,BC
   \   00EB  301E              JR      NC,?0023
   \   00ED            ?0025:
     65                         {
     66                             if(m_FMStationTab[i]!=0)
   \   00ED  FDE5              PUSH    IY
   \   00EF  E1                POP     HL
   \   00F0  29                ADD     HL,HL
   \   00F1  010000            LD      BC,m_FMStationTab
   \   00F4  09                ADD     HL,BC
   \   00F5  7E                LD      A,(HL)
   \   00F6  23                INC     HL
   \   00F7  B6                OR      (HL)
   \   00F8  280D              JR      Z,?0030
   \   00FA            ?0027:
     67                             {
     68                                 k++;
   \   00FA  DD34FA            INC     (IX-6)
     69                                 if(k==m_FMPlaystatus.station)break;
   \   00FD  3A2B00            LD      A,(m_FMPlaystatus+3)
   \   0100  47                LD      B,A
   \   0101  DD7EFA            LD      A,(IX-6)
   \   0104  B8                CP      B
   \   0105  2804              JR      Z,?0023
   \   0107            ?0029:
   \   0107            ?0030:
   \   0107            ?0028:
   \   0107  FD23              INC     IY
   \   0109  18D5              JR      ?0024
   \   010B            ?0023:
     70                             }
     71                         }
     72                         if(i>=20)              // 如没有找到电台,重新设置电台数
   \   010B  011480            LD      BC,32788
   \   010E  FDE5              PUSH    IY
   \   0110  E1                POP     HL
   \   0111  78                LD      A,B
   \   0112  AC                XOR     H
   \   0113  67                LD      H,A
   \   0114  ED42              SBC     HL,BC
   \   0116  380B              JR      C,?0032
   \   0118            ?0031:
     73                         {
     74                              m_FMPlaystatus.station = m_FMPlaystatus.station_count = k +1; 
   \   0118  DD46FA            LD      B,(IX-6)
   \   011B  04                INC     B
   \   011C  78                LD      A,B
   \   011D  322C00            LD      (m_FMPlaystatus+4),A
   \   0120            ?0129:
   \   0120  322B00            LD      (m_FMPlaystatus+3),A
   \   0123            ?0032:
     75                         }                                                                 
     76                         break;                                                                              
   \   0123            ?0033:
     77                     default:
     78                         break;
   \   0123            ?0006:
     79                     }
     80                     m_FMPlaystatus.freq=m_FMStationTab[i];             
   \   0123  FDE5              PUSH    IY
   \   0125  E1                POP     HL
   \   0126  29                ADD     HL,HL
   \   0127  010000            LD      BC,m_FMStationTab
   \   012A  09                ADD     HL,BC
   \   012B  46                LD      B,(HL)
   \   012C  23                INC     HL
   \   012D  66                LD      H,(HL)
   \   012E  68                LD      L,B
   \   012F  C3B301            JP      LWRD ?0118
     81                     BankSwitch(address_24_of(FM_SetFreq) >> 16); 
     82                     FM_SetFreq(m_FMPlaystatus.freq); 
     83                     return TRUE;   
     84                 
     85                 case   MC_STEPGRID:
   \   0132            ?0034:
     86                     switch(param)
   \   0132  3E01              LD      A,1
   \   0134  A9                XOR     C
   \   0135  B0                OR      B
   \   0136  2045              JR      NZ,?0047
   \   0138            ?0036:
     87                     {
     88                     case UP: 
     89                         if(((m_FMPlaystatus.freq+100)>0xa5e0+20)&&
     90                         (m_FMPlaystatus.mode==0))m_FMPlaystatus.freq=0x53d8;
   \   0138  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   013B  016400            LD      BC,100
   \   013E  09                ADD     HL,BC
   \   013F  4D                LD      C,L
   \   0140  44                LD      B,H
   \   0141  21F4A5            LD      HL,42484
   \   0144  A7                AND     A
   \   0145  ED42              SBC     HL,BC
   \   0147  300B              JR      NC,?0038
   \   0149  3A2D00            LD      A,(m_FMPlaystatus+5)
   \   014C  B7                OR      A
   \   014D  2005              JR      NZ,?0038
   \   014F            ?0040:
   \   014F            ?0039:
   \   014F            ?0037:
   \   014F  21D853            LD      HL,21464
   \   0152  185F              JR      ?0118
   \   0154            ?0038:
     91                         else if(((m_FMPlaystatus.freq+100)>0x5f90+20)&&
     92                         (m_FMPlaystatus.mode==1))m_FMPlaystatus.freq=0x28e0;
   \   0154  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   0157  016400            LD      BC,100
   \   015A  09                ADD     HL,BC
   \   015B  4D                LD      C,L
   \   015C  44                LD      B,H
   \   015D  21A45F            LD      HL,24484
   \   0160  A7                AND     A
   \   0161  ED42              SBC     HL,BC
   \   0163  300B              JR      NC,?0043
   \   0165  3A2D00            LD      A,(m_FMPlaystatus+5)
   \   0168  3D                DEC     A
   \   0169  2005              JR      NZ,?0043
   \   016B            ?0045:
   \   016B            ?0044:
   \   016B            ?0042:
   \   016B  21E028            LD      HL,10464
   \   016E  1843              JR      ?0118
     93                         else
   \   0170            ?0043:
     94                             m_FMPlaystatus.freq+=100;                                                            
   \   0170  212900            LD      HL,m_FMPlaystatus+1
   \   0173  7E                LD      A,(HL)
   \   0174  C664              ADD     A,100
   \   0176  77                LD      (HL),A
   \   0177  304B              JR      NC,?0057
   \   0179  23                INC     HL
   \   017A  34                INC     (HL)
   \   017B            ?0046:
   \   017B            ?0041:
     95                         break;                        
   \   017B  1847              JR      ?0057
   \   017D            ?0047:
   \   017D  79                LD      A,C
   \   017E  B0                OR      B
   \   017F  2043              JR      NZ,?0057
     96                     case DOWN:
     97                         if(((m_FMPlaystatus.freq-100)<0x53d8-20)&&
     98                         (m_FMPlaystatus.mode==0))m_FMPlaystatus.freq=0xa5e0;
   \   0181  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   0184  019CFF            LD      BC,65436
   \   0187  09                ADD     HL,BC
   \   0188  01C453            LD      BC,21444
   \   018B  A7                AND     A
   \   018C  ED42              SBC     HL,BC
   \   018E  300B              JR      NC,?0049
   \   0190  3A2D00            LD      A,(m_FMPlaystatus+5)
   \   0193  B7                OR      A
   \   0194  2005              JR      NZ,?0049
   \   0196            ?0051:
   \   0196            ?0050:
   \   0196            ?0048:
   \   0196  21E0A5            LD      HL,42464
   \   0199  1818              JR      ?0118
   \   019B            ?0049:
     99                         else if(((m_FMPlaystatus.freq-100)<0x28e0-20)&&
    100                         (m_FMPlaystatus.mode==1))m_FMPlaystatus.freq=0x5f90;
   \   019B  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   019E  019CFF            LD      BC,65436
   \   01A1  09                ADD     HL,BC
   \   01A2  01CC28            LD      BC,10444
   \   01A5  A7                AND     A
   \   01A6  ED42              SBC     HL,BC
   \   01A8  300E              JR      NC,?0054
   \   01AA  3A2D00            LD      A,(m_FMPlaystatus+5)
   \   01AD  3D                DEC     A
   \   01AE  2008              JR      NZ,?0054
   \   01B0            ?0056:
   \   01B0            ?0055:
   \   01B0            ?0053:
   \   01B0  21905F            LD      HL,24464
   \   01B3            ?0118:
   \   01B3  222900            LD      (m_FMPlaystatus+1),HL
    101                         else
   \   01B6  180C              JR      ?0057
   \   01B8            ?0054:
    102                             m_FMPlaystatus.freq-=100;                                                                                                                     
   \   01B8  212900            LD      HL,m_FMPlaystatus+1
   \   01BB  7E                LD      A,(HL)
   \   01BC  C69C              ADD     A,156
   \   01BE  77                LD      (HL),A
   \   01BF  23                INC     HL
   \   01C0  7E                LD      A,(HL)
   \   01C1  CEFF              ADC     A,255
   \   01C3  77                LD      (HL),A
   \   01C4            ?0057:
   \   01C4            ?0052:
    103                         break;                                                                              
   \   01C4            ?0058:
    104                     default:
    105                         break;
   \   01C4            ?0035:
    106                     }
    107                     BankSwitch(address_24_of(FM_SetFreq) >> 16);
   \   01C4  210000            LD      HL,FM_SetFreq
   \   01C7  0E00              LD      C,BYTE3 FM_SetFreq
   \   01C9  CD4B04            CALL    LWRD ?0140
    108                     FM_SetFreq(m_FMPlaystatus.freq);                                     
   \   01CC  ED5B2900          LD      DE,(m_FMPlaystatus+1)
   \   01D0  CD0000            CALL    LWRD FM_SetFreq
    109                     return TRUE;
   \   01D3  C33104            JP      LWRD ?0000
    110                     
    111                                
    112                 case    MC_SEARCH:
   \   01D6            ?0059:
    113                     FM_MUTE(SetMUTE);  
   \   01D6  1E01              LD      E,1
   \   01D8  CD0000            CALL    LWRD FM_MUTE
    114                     BankSwitch(address_24_of(FM_Search) >> 16);
   \   01DB  210000            LD      HL,FM_Search
   \   01DE  0E00              LD      C,BYTE3 FM_Search
   \   01E0  CD3C04            CALL    LWRD ?0139
    115                     return     FM_Search(m_FMPlaystatus.freq,param);
   \   01E3  ED5B2900          LD      DE,(m_FMPlaystatus+1)
   \   01E7  CD0000            CALL    LWRD FM_Search
   \   01EA            ?0126:
   \   01EA  6F                LD      L,A
    116                 
    117                 case    MC_SAVESTATION:
   \   01EB  C33304            JP      LWRD ?0114
   \   01EE            ?0060:
    118                     if(m_FMPlaystatus.station!=0)            //当前电台在电台表中有保存的情况
   \   01EE  3A2B00            LD      A,(m_FMPlaystatus+3)
   \   01F1  B7                OR      A
   \   01F2  283F              JR      Z,?0062
   \   01F4            ?0061:
    119                     {
    120                         k=0;
    121                         for(i=0;i<20;i++)
   \   01F4  DD36FA00          LD      (IX-6),0

⌨️ 快捷键说明

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