main.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,352 行 · 第 1/5 页

LST
1,352
字号
    156                  FMStatusJP.stereo_status=1;
   \   023C  3E01              LD      A,1
   \   023E  329B00            LD      (FMStatusJP+7),A
    157                  memcpy(&FMStatus,&FMStatusUS,sizeof(FMStatus));
   \   0241  0E08              LD      C,8
   \   0243  118400            LD      DE,FMStatus
   \   0246  218C00            LD      HL,FMStatusUS
   \   0249  EDB0              LDIR
   \   024B            ?0028:
   \   024B            ?0034:
    158              }
    159          
    160              //clear the message pool  清除“初始化...”过程中按下的键!
    161              while(ap_get_message() != AP_KEY_NULL){;}
   \   024B  CD0000            CALL    LWRD ap_get_message
   \   024E  B7                OR      A
   \   024F  20FA              JR      NZ,?0028
   \   0251            ?0035:
    162          
    163              while(1)
   \   0251            ?0033:
   \   0251            ?0037:
    164              {
    165                  if(BandSwitch)        //初始化
   \   0251  AF                XOR     A
   \   0252  DDB6FD            OR      (IX-3)
   \   0255  CAE402            JP      Z,?0040
   \   0258            ?0039:
    166                  {
    167                      //initial
    168                      if(FMStatus.mode==0)radio_param.param1=FMStationTab;
   \   0258  3A8900            LD      A,(FMStatus+5)
   \   025B  B7                OR      A
   \   025C  2007              JR      NZ,?0042
   \   025E            ?0041:
   \   025E  213400            LD      HL,FMStationTab
   \   0261  1805              JR      ?0129
    169                      else
   \   0263  1806              JR      ?0043
   \   0265            ?0042:
    170                          radio_param.param1=&FMStationTab[20];
   \   0265  215C00            LD      HL,FMStationTab+40
   \   0268            ?0129:
   \   0268  220200            LD      (radio_param),HL
   \   026B            ?0043:
    171                      (fm_play_status_t *)radio_param.param2=&FMStatus;
   \   026B  218400            LD      HL,FMStatus
   \   026E  220400            LD      (radio_param+2),HL
    172          
    173                      if(!fmSendCommand(MC_OPEN,SearchLevel))            //硬件错误提示
   \   0271  010500            LD      BC,5
   \   0274  1E01              LD      E,1
   \   0276  CD1000            CALL    LWRD ?0169
   \   0279  2C                INC     L
   \   027A  2D                DEC     L
   \   027B  2036              JR      NZ,?0045
   \   027D            ?0044:
    174                      {
    175                          ClearScreen(NULL);
   \   027D  5D                LD      E,L
   \   027E  55                LD      D,L
   \   027F  CD0000            CALL    LWRD ClearScreen
    176                          ResShowMultiString(FMERROR,F_comval.langid,-1,8);
   \   0282  0E08              LD      C,8
   \   0284  C5                PUSH    BC
   \   0285  0EFF              LD      C,255
   \   0287  C5                PUSH    BC
   \   0288  ED4B1F00          LD      BC,(g_comval+12)
   \   028C  118F01            LD      DE,399
   \   028F  3E00              LD      A,BYTE3 ResShowMultiString
   \   0291  210000            LD      HL,LWRD ResShowMultiString
   \   0294  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0297  F1                POP     AF
   \   0298  F1                POP     AF
    177                          //UpdateScreen(NULL);
    178                          strcpy(fmdataflag,"  ");
   \   0299  110900            LD      DE,?0046
   \   029C  219C00            LD      HL,fmdataflag
   \   029F  CD0000            CALL    LWRD ?STRCPY_L11
    179                          ap_sleep(3);
   \   02A2  110300            LD      DE,3
   \   02A5  3E00              LD      A,BYTE3 ap_sleep
   \   02A7  210000            LD      HL,LWRD ap_sleep
   \   02AA  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    180                          return RESULT_MAIN;
   \   02AD  210A00            LD      HL,10
    181                      }
   \   02B0  C30C06            JP      LWRD ?0121
   \   02B3            ?0045:
    182                      fmSendCommand(MC_MUTE,SetMUTE);
   \   02B3  010100            LD      BC,1
   \   02B6  CD0E00            CALL    LWRD ?0170
    183                      fmSendCommand(MC_RESTORE,(int)&radio_param);
   \   02B9  010200            LD      BC,radio_param
   \   02BC  1E45              LD      E,69
   \   02BE  CD1000            CALL    LWRD ?0169
    184                      fmSendCommand(MC_PLAY,0);
   \   02C1  010000            LD      BC,0
   \   02C4  1E04              LD      E,4
   \   02C6  CD1000            CALL    LWRD ?0169
    185                      fmSendCommand(MC_SETVOLUME,FMStatus.volume);
   \   02C9  ED4B8A00          LD      BC,(FMStatus+6)
   \   02CD  0600              LD      B,0
   \   02CF  1E40              LD      E,64
   \   02D1  CD1000            CALL    LWRD ?0169
    186          
    187                      fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
   \   02D4  018400            LD      BC,FMStatus
   \   02D7  1E83              LD      E,131
   \   02D9  CD1000            CALL    LWRD ?0169
    188                      BandSwitch=FALSE;
    189                      FirstWait=TRUE;
   \   02DC  DD36FD00          LD      (IX-3),0
   \   02E0  DD36FE01          LD      (IX-2),1
   \   02E4            ?0040:
    190                  }
    191          
    192                  if(need_draw)            //屏幕重画
   \   02E4  AF                XOR     A
   \   02E5  DDB6FC            OR      (IX-4)
   \   02E8  280C              JR      Z,?0048
   \   02EA            ?0047:
    193                  {
    194                      ShowFreqInFM();
   \   02EA  3E00              LD      A,BYTE3 ShowFreqInFM
   \   02EC  210000            LD      HL,LWRD ShowFreqInFM
   \   02EF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    195                      need_draw=FALSE;
   \   02F2  DD36FC00          LD      (IX-4),0
   \   02F6            ?0048:
    196                  }
    197                  if(FirstWait)    //初次进入AP等待1.5S释放MUTE(静音)
   \   02F6  AF                XOR     A
   \   02F7  DDB6FE            OR      (IX-2)
   \   02FA  2815              JR      Z,?0050
   \   02FC            ?0049:
    198                  {
    199                      FirstWait=FALSE;
    200                      ap_sleep(3);
   \   02FC  110300            LD      DE,3
   \   02FF  3E00              LD      A,BYTE3 ap_sleep
   \   0301  210000            LD      HL,LWRD ap_sleep
   \   0304  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    201          //            if(FMStatus.volume)
    202                      fmSendCommand(MC_MUTE,releaseMUTE);
   \   0307  010000            LD      BC,0
   \   030A  CD0E00            CALL    LWRD ?0170
   \   030D  DD36FE00          LD      (IX-2),0
   \   0311            ?0050:
    203                  }
    204                  key=ap_get_message();
   \   0311  CD0000            CALL    LWRD ap_get_message
   \   0314  4F                LD      C,A
   \   0315  59                LD      E,C
   \   0316  0600              LD      B,0
    205                  switch(key)
   \   0318  50                LD      D,B
   \   0319  CD0000            CALL    LWRD ?S_V_SWITCH_L06
   \   031C  0C00              DEFW    12
   \   031E  0300              DEFW    3
   \   0320  0400              DEFW    4
   \   0322  1C00              DEFW    28
   \   0324  1D00              DEFW    29
   \   0326  2100              DEFW    33
   \   0328  2500              DEFW    37
   \   032A  2600              DEFW    38
   \   032C  3000              DEFW    48
   \   032E  4300              DEFW    67
   \   0330  4400              DEFW    68
   \   0332  4500              DEFW    69
   \   0334  4600              DEFW    70
   \   0336  DA05              DEFW    ?0109
   \   0338  6A03              DEFW    ?0054
   \   033A  8403              DEFW    ?0055
   \   033C  6605              DEFW    ?0097
   \   033E  9D05              DEFW    ?0103
   \   0340  EA03              DEFW    ?0058
   \   0342  A003              DEFW    ?0056
   \   0344  C503              DEFW    ?0057
   \   0346  4505              DEFW    ?0096
   \   0348  5102              DEFW    ?0033
   \   034A  5303              DEFW    ?0053
   \   034C  6605              DEFW    ?0097
   \   034E  9D05              DEFW    ?0103
   \   0350            ?0052:
    206                  {
    207                      case AP_MSG_STANDBY:
    208                          //do nothing
    209                          break;
   \   0350  C35102            JP      LWRD ?0033
   \   0353            ?0053:
    210                      case AP_MSG_RTC:        //2HZ中断到来,屏幕重画,为了电池显示更新
    211                        ui_show_batt(GetBattery(),F_comval.BatteryType,1);           //电池电量显示
   \   0353  0E01              LD      C,1
   \   0355  C5                PUSH    BC
   \   0356  ED4B2200          LD      BC,(g_comval+15)
   \   035A  CD0000            CALL    LWRD GetBattery
   \   035D  5F                LD      E,A
   \   035E  3E00              LD      A,BYTE3 ui_show_batt
   \   0360  210000            LD      HL,LWRD ui_show_batt
   \   0363  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0366  E1                POP     HL
    212          
    213                          break;
   \   0367  C35102            JP      LWRD ?0033
   \   036A            ?0054:
    214                      case AP_KEY_HOLD|AP_KEY_NEXT:
    215                              FMStatus.freq+=100;
   \   036A  218500            LD      HL,FMStatus+1
   \   036D  7E                LD      A,(HL)
   \   036E  C664              ADD     A,100
   \   0370  77                LD      (HL),A
   \   0371  3002              JR      NC,?0128
   \   0373  23                INC     HL
   \   0374  34                INC     (HL)
   \   0375            ?0128:
    216                              result=SearchHandle(10);
   \   0375  1E0A              LD      E,10
   \   0377  1819              JR      ?0133
   \   0379  210000            LD      HL,LWRD SearchHandle
   \   037C  1819              JR      ?0140
   \   037E  E5                PUSH    HL
   \   037F  FDE1              POP     IY
    217                              break;
   \   0381  C35102            JP      LWRD ?0033
   \   0384            ?0055:
    218                      case AP_KEY_HOLD|AP_KEY_PREV:
    219                              FMStatus.freq-=100;
   \   0384  218500            LD      HL,FMStatus+1
   \   0387  7E                LD      A,(HL)
   \   0388  C69C              ADD     A,156
   \   038A  77                LD      (HL),A
   \   038B  23                INC     HL
   \   038C  7E                LD      A,(HL)
   \   038D  CEFF              ADC     A,255
   \   038F  77                LD      (HL),A
    220                              result=SearchHandle(20);
   \   0390  1E14              LD      E,20
   \   0392            ?0133:
   \   0392  3E00              LD      A,BYTE3 SearchHandle
   \   0394  210000            LD      HL,LWRD SearchHandle
   \   0397            ?0140:
   \   0397  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   039A  E5                PUSH    HL
   \   039B  FDE1              POP     IY
    221                              break;
   \   039D  C35102            JP      LWRD ?0033
   \   03A0            ?0056:
    222                      case AP_KEY_NEXT|AP_KEY_UP:
    223                              fmSendCommand(MC_STEPGRID,UP);
   \   03A0  0E01              LD      C,1
   \   03A2  1822              JR      ?0134
   \   03A4  3E00              LD      A,BYTE3 fmSendCommand
   \   03A6  C34B05            JP      LWRD ?0135
   \   03A9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    224                              fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
   \   03AC  C34E05            JP      LWRD ?0154
   \   03AF  1E83              LD      E,131
   \   03B1  C35305            JP      LWRD ?0143
   \   03B4  210000            LD      HL,LWRD fmSendCommand
   \   03B7  C35805            JP      LWRD ?0159
    225                              Updateflag=1;
   \   03BA  3E01              LD      A,1
   \   03BC  C35D05            JP      LWRD ?0156
    226                              need_draw=TRUE;
   \   03BF  C3E405            JP      LWRD ?0136
    227                              break;
   \   03C2  C35102            JP      LWRD ?0033
   \   03C5            ?0057:
    228                      case AP_KEY_PREV|AP_KEY_UP:
    229                            fmSendCommand(MC_STEPGRID,DOWN);

⌨️ 快捷键说明

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