basal_fmradio.lst

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

LST
984
字号
   \   0337  016480            LD      BC,32868
   \   033A  78                LD      A,B
   \   033B  AC                XOR     H
   \   033C  67                LD      H,A
   \   033D  ED42              SBC     HL,BC
   \   033F  3008              JR      NC,?0092
   \   0341            ?0091:
    179                             {
    180                                 m_FMPlaystatus.station=k;
   \   0341  DD7EFA            LD      A,(IX-6)
   \   0344  322B00            LD      (m_FMPlaystatus+3),A
    181                                 break;
   \   0347  1804              JR      ?0085
   \   0349            ?0092:
   \   0349            ?0090:
   \   0349  FD23              INC     IY
   \   034B  18B2              JR      ?0086
   \   034D            ?0085:
    182                             }
    183                         }
    184                     }                             
    185                     memcpy((fm_play_status_t *)param,&m_FMPlaystatus, sizeof(fm_play_status_t));                                                        
   \   034D  010800            LD      BC,8
   \   0350  DD5EFE            LD      E,(IX-2)
   \   0353  DD56FF            LD      D,(IX-1)
   \   0356            ?0131:
   \   0356  212800            LD      HL,m_FMPlaystatus
   \   0359  180C              JR      ?0121
    186                     break; 
   \   035B            ?0093:
    187                 case    MC_GETTABLE:
    188                     memcpy((WORD *)param,&m_FMStationTab[0], 20);                
   \   035B  011400            LD      BC,20
   \   035E  DD5EFE            LD      E,(IX-2)
   \   0361  DD56FF            LD      D,(IX-1)
   \   0364  210000            LD      HL,m_FMStationTab
   \   0367            ?0121:
   \   0367  EDB0              LDIR
    189                     break;        
   \   0369  C33104            JP      LWRD ?0000
   \   036C            ?0094:
    190                 case MC_DELONE:
    191                     if(m_FMPlaystatus.station==0)return    FALSE;
   \   036C  3A2B00            LD      A,(m_FMPlaystatus+3)
   \   036F  B7                OR      A
   \   0370  2005              JR      NZ,?0096
   \   0372            ?0095:
   \   0372            ?0128:
   \   0372  2E00              LD      L,0
   \   0374  C33304            JP      LWRD ?0114
   \   0377            ?0096:
    192                         for(k=m_FMPlaystatus.station;k<m_FMPlaystatus.station_count+1;k++)
   \   0377  DD77FA            LD      (IX-6),A
   \   037A            ?0098:
   \   037A  ED4B2C00          LD      BC,(m_FMPlaystatus+4)
   \   037E  0600              LD      B,0
   \   0380  03                INC     BC
   \   0381  DD6EFA            LD      L,(IX-6)
   \   0384  2600              LD      H,0
   \   0386  F680              OR      128
   \   0388  ED42              SBC     HL,BC
   \   038A  E28E03            JP      PO,?0116
   \   038D  AC                XOR     H
   \   038E            ?0116:
   \   038E  F2B203            JP      P,?0097
   \   0391            ?0099:
    193                         {
    194                             m_FMStationTab[k-1]=m_FMStationTab[k];
   \   0391  DD6EFA            LD      L,(IX-6)
   \   0394  2600              LD      H,0
   \   0396  29                ADD     HL,HL
   \   0397  01FEFF            LD      BC,m_FMStationTab-2
   \   039A  09                ADD     HL,BC
   \   039B  E5                PUSH    HL
   \   039C  DD6EFA            LD      L,(IX-6)
   \   039F  2600              LD      H,0
   \   03A1  29                ADD     HL,HL
   \   03A2  010000            LD      BC,m_FMStationTab
   \   03A5  09                ADD     HL,BC
   \   03A6  4E                LD      C,(HL)
   \   03A7  23                INC     HL
   \   03A8  46                LD      B,(HL)
   \   03A9  E1                POP     HL
   \   03AA  71                LD      (HL),C
   \   03AB  23                INC     HL
   \   03AC  70                LD      (HL),B
   \   03AD  DD34FA            INC     (IX-6)
   \   03B0  18C8              JR      ?0098
   \   03B2            ?0097:
    195                     }
    196                     m_FMStationTab[m_FMPlaystatus.station_count-1]=0;        
   \   03B2  2A2C00            LD      HL,(m_FMPlaystatus+4)
   \   03B5  2600              LD      H,0
   \   03B7  29                ADD     HL,HL
   \   03B8  01FEFF            LD      BC,m_FMStationTab-2
   \   03BB  09                ADD     HL,BC
   \   03BC  AF                XOR     A
   \   03BD  77                LD      (HL),A
   \   03BE  23                INC     HL
   \   03BF  77                LD      (HL),A
    197                         m_FMPlaystatus.station_count--;
   \   03C0  212C00            LD      HL,m_FMPlaystatus+4
   \   03C3  35                DEC     (HL)
    198                         m_FMPlaystatus.station=0;
   \   03C4            ?0135:
   \   03C4  322B00            LD      (m_FMPlaystatus+3),A
    199                         return     TRUE;                                
   \   03C7  1868              JR      ?0000
    200                 case MC_DELALL:
   \   03C9            ?0101:
    201                     for(i=0;i<20;i++)
   \   03C9  FD210000          LD      IY,0
   \   03CD            ?0103:
   \   03CD  011480            LD      BC,32788
   \   03D0  FDE5              PUSH    IY
   \   03D2  E1                POP     HL
   \   03D3  78                LD      A,B
   \   03D4  AC                XOR     H
   \   03D5  67                LD      H,A
   \   03D6  ED42              SBC     HL,BC
   \   03D8  3010              JR      NC,?0102
   \   03DA            ?0104:
    202                     {
    203                         m_FMStationTab[i]=0;
   \   03DA  FDE5              PUSH    IY
   \   03DC  E1                POP     HL
   \   03DD  29                ADD     HL,HL
   \   03DE  010000            LD      BC,m_FMStationTab
   \   03E1  09                ADD     HL,BC
   \   03E2  AF                XOR     A
   \   03E3  77                LD      (HL),A
   \   03E4  23                INC     HL
   \   03E5  77                LD      (HL),A
   \   03E6  FD23              INC     IY
   \   03E8  18E3              JR      ?0103
   \   03EA            ?0102:
    204                     }       
    205                     m_FMPlaystatus.station=0;
   \   03EA  AF                XOR     A
   \   03EB  322B00            LD      (m_FMPlaystatus+3),A
    206                     m_FMPlaystatus.station_count=0;           
   \   03EE  322C00            LD      (m_FMPlaystatus+4),A
    207                     break;
   \   03F1  183E              JR      ?0000
   \   03F3            ?0106:
    208                 case MC_MUTE:            //静音
    209                     BankSwitch(address_24_of(FM_MUTE) >> 16);
   \   03F3  210000            LD      HL,FM_MUTE
   \   03F6  0E00              LD      C,BYTE3 FM_MUTE
   \   03F8  CD4B04            CALL    LWRD ?0140
   \   03FB            ?0108:
    210                     while(!(k = FM_MUTE(param)))
   \   03FB  DD5EFE            LD      E,(IX-2)
   \   03FE  CD0000            CALL    LWRD FM_MUTE
   \   0401  B7                OR      A
   \   0402  202D              JR      NZ,?0000
   \   0404            ?0109:
    211                     {
    212                          output8(0x4e,input8(0x4e)|0x8);
   \   0404  DB4E              IN      A,(78)
   \   0406  CBDF              SET     3,A
   \   0408  D34E              OUT     (78),A
    213                          FM_GetStatus(&d_FMStatus);
   \   040A  113000            LD      DE,d_FMStatus
   \   040D  CD0000            CALL    LWRD FM_GetStatus
    214                     }     
    215                    
    216                     break;
   \   0410  18E9              JR      ?0108
   \   0412            ?0107:
   \   0412            ?0110:
    217                 case MC_CLOSE:
    218                     BankSwitch(address_24_of(FM_Standby) >> 16);
   \   0412  210000            LD      HL,FM_Standby
   \   0415  0E00              LD      C,BYTE3 FM_Standby
   \   0417  CD4B04            CALL    LWRD ?0140
    219                     FM_Standby();
   \   041A  CD0000            CALL    LWRD FM_Standby
    220                     FM_Exit();
   \   041D  CD0000            CALL    LWRD FM_Exit
    221                     break;
   \   0420  180F              JR      ?0000
   \   0422            ?0111:
    222                 case MC_GETFREQ:
    223                         *(uint *)param = m_FMPlaystatus.freq;
   \   0422  69                LD      L,C
   \   0423  60                LD      H,B
   \   0424            ?0137:
   \   0424  ED4B2900          LD      BC,(m_FMPlaystatus+1)
   \   0428  71                LD      (HL),C
   \   0429  23                INC     HL
   \   042A  70                LD      (HL),B
    224                         break;
   \   042B  1804              JR      ?0000
   \   042D            ?0112:
    225                     case MC_SETFREQ:
    226                         m_FMPlaystatus.freq = param;
   \   042D  ED432900          LD      (m_FMPlaystatus+1),BC
    227                         break;        
   \   0431            ?0113:
    228                 default:
    229                  break;
   \   0431            ?0000:
    230              } 
    231              
    232              return    TRUE;   
   \   0431  2E01              LD      L,1
    233          }
   \   0433            ?0114:
   \   0433  DDF9              LD      SP,IX
   \   0435  DDE1              POP     IX
   \   0437  FDE1              POP     IY
   \   0439  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   043C            ?0139:
   \   043C  0600              LD      B,0
   \   043E  3E10              LD      A,16
   \   0440  CD0000            CALL    LWRD ?SL_RSH_L03
   \   0443  5D                LD      E,L
   \   0444  CD0000            CALL    LWRD BankSwitch
   \   0447  DD4EFE            LD      C,(IX-2)
   \   044A  C9                RET
   \   044B            ?0140:
   \   044B  0600              LD      B,0
   \   044D  3E10              LD      A,16
   \   044F  CD0000            CALL    LWRD ?SL_RSH_L03
   \   0452  5D                LD      E,L
   \   0453  C30000            JP      LWRD BankSwitch
    234          
    235          
    236           
   \   0000                    RSEG    RCODE
   \   0000            m_FMStationTab:
   \   0028                    DEFS    40
   \   0028            m_FMPlaystatus:
   \   0030                    DEFS    8
   \   0030            d_FMStatus:
   \   0033                    DEFS    3
   \   0033                    END

Errors: none
Warnings: none
Code size: 1110
Constant size: 0
Static variable size: Data(51) Iram(0)

⌨️ 快捷键说明

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