autosearchhandle.lst

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

LST
1,436
字号
    272          
    273              AutoTabNum = 0;                 // 全自动搜索,从极值开始.
   \   03AE  AF                XOR     A
   \   03AF  322800            LD      (AutoTabNum),A
    274              fmSendCommand(MC_BACKUP,(int)&radio_param);
   \   03B2  010000            LD      BC,radio_param
   \   03B5  1E44              LD      E,68
   \   03B7  CD7103            CALL    LWRD ?0175
    275              if(FMStatus.mode==0)
   \   03BA  DD36F801          LD      (IX-8),1
   \   03BE  DD36F905          LD      (IX-7),5
   \   03C2  DD36FA01          LD      (IX-6),1
   \   03C6  3A0500            LD      A,(FMStatus+5)
   \   03C9  B7                OR      A
   \   03CA  DD7EFE            LD      A,(IX-2)
   \   03CD  200E              JR      NZ,?0050
   \   03CF            ?0049:
    276              {
    277                  if(Direct==10)              // US频段
   \   03CF  FE0A              CP      10
   \   03D1  2005              JR      NZ,?0052
   \   03D3            ?0051:
    278                  {
    279                      FMStatus.freq = 0x53d8;
   \   03D3  21D853            LD      HL,21464
   \   03D6  1811              JR      ?0163
    280                  }
    281                  else
   \   03D8            ?0052:
    282                  {
    283                      FMStatus.freq = 0xa5e0;
   \   03D8  21E0A5            LD      HL,42464
   \   03DB  180C              JR      ?0163
   \   03DD            ?0053:
    284                  }
    285              }
    286              else
   \   03DD            ?0050:
    287              {                              // JP频段
    288                  if(Direct==10)
   \   03DD  FE0A              CP      10
   \   03DF  2005              JR      NZ,?0056
   \   03E1            ?0055:
    289                  {
    290                      FMStatus.freq = 0x28e0;
   \   03E1  21E028            LD      HL,10464
   \   03E4  1803              JR      ?0163
    291                  }
    292                  else
   \   03E6            ?0056:
    293                  {
    294                      FMStatus.freq = 0x5f90;
   \   03E6  21905F            LD      HL,24464
   \   03E9            ?0163:
   \   03E9  220100            LD      (FMStatus+1),HL
   \   03EC            ?0057:
   \   03EC            ?0054:
    295                  }
    296              }
    297          
    298              temp =  FMStatus.station_count;
   \   03EC  3A0400            LD      A,(FMStatus+4)
   \   03EF  DD77FB            LD      (IX-5),A
   \   03F2            ?0059:
    299              while(loop)
   \   03F2  AF                XOR     A
   \   03F3  DDB6FA            OR      (IX-6)
   \   03F6  CAA705            JP      Z,?0058
   \   03F9            ?0060:
    300              {
    301                  if(Direct!=0)
   \   03F9  AF                XOR     A
   \   03FA  DDB6FE            OR      (IX-2)
   \   03FD  CA3505            JP      Z,?0112
   \   0400            ?0061:
    302                  {
    303                      if(Direct==10)            //NEXT搜索处理
   \   0400  FE0A              CP      10
   \   0402  C29204            JP      NZ,?0064
   \   0405            ?0063:
    304                      {
    305                          if(((FMStatus.freq+100)>0xa5e0)&&(FMStatus.mode==0))
   \   0405  2A0100            LD      HL,(FMStatus+1)
   \   0408  016400            LD      BC,100
   \   040B  09                ADD     HL,BC
   \   040C  4D                LD      C,L
   \   040D  44                LD      B,H
   \   040E  21E0A5            LD      HL,42464
   \   0411  A7                AND     A
   \   0412  ED42              SBC     HL,BC
   \   0414  300B              JR      NC,?0066
   \   0416  3A0500            LD      A,(FMStatus+5)
   \   0419  B7                OR      A
   \   041A  2005              JR      NZ,?0066
   \   041C            ?0068:
   \   041C            ?0067:
   \   041C            ?0065:
    306                          {
    307                              FMStatus.freq=0x53d8;
   \   041C  21D853            LD      HL,21464
   \   041F  181A              JR      ?0164
    308                              Search_Level--;                     // 以不同门限搜索.
    309                              loop = RestartSearch(Search_Level);
   \   0421            ?0066:
    310                          }
    311                          else if(((FMStatus.freq+100)>0x5f90)&&(FMStatus.mode==1))
   \   0421  2A0100            LD      HL,(FMStatus+1)
   \   0424  016400            LD      BC,100
   \   0427  09                ADD     HL,BC
   \   0428  4D                LD      C,L
   \   0429  44                LD      B,H
   \   042A  21905F            LD      HL,24464
   \   042D  A7                AND     A
   \   042E  ED42              SBC     HL,BC
   \   0430  301F              JR      NC,?0071
   \   0432  3A0500            LD      A,(FMStatus+5)
   \   0435  3D                DEC     A
   \   0436  2019              JR      NZ,?0071
   \   0438            ?0073:
   \   0438            ?0072:
   \   0438            ?0070:
    312                              {
    313                                  FMStatus.freq=0x28e0;
   \   0438  21E028            LD      HL,10464
   \   043B            ?0164:
   \   043B  220100            LD      (FMStatus+1),HL
    314                                  Search_Level--;
   \   043E  DD35F9            DEC     (IX-7)
    315                              loop = RestartSearch(Search_Level);
   \   0441  DD5EF9            LD      E,(IX-7)
   \   0444  3E00              LD      A,BYTE3 RestartSearch
   \   0446  217903            LD      HL,LWRD RestartSearch
   \   0449  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   044C  DD75FA            LD      (IX-6),L
    316                          }
    317                          else
   \   044F  180B              JR      ?0160
   \   0451            ?0071:
    318                              FMStatus.freq+=100;
   \   0451  210100            LD      HL,FMStatus+1
   \   0454  7E                LD      A,(HL)
   \   0455  C664              ADD     A,100
   \   0457  77                LD      (HL),A
   \   0458  3002              JR      NC,?0160
   \   045A  23                INC     HL
   \   045B  34                INC     (HL)
   \   045C            ?0160:
   \   045C            ?0074:
   \   045C            ?0069:
    319                          if(loop && Search_Show2(UP))
   \   045C  AF                XOR     A
   \   045D  DDB6FA            OR      (IX-6)
   \   0460  CA3505            JP      Z,?0112
   \   0463  1E01              LD      E,1
   \   0465  3E00              LD      A,BYTE3 Search_Show2
   \   0467  21A302            LD      HL,LWRD Search_Show2
   \   046A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   046D  2C                INC     L
   \   046E  2D                DEC     L
   \   046F  CA3505            JP      Z,?0112
   \   0472            ?0078:
   \   0472            ?0077:
   \   0472            ?0075:
    320                          {
    321                              ShowStationCount(AutoTabNum + 1);
    322                              key = TryPlayingHandle();
    323                              CleanStationCount();
   \   0472  CD3106            CALL    LWRD ?0177
    324                              need_draw = TRUE;
   \   0475  DD36F801          LD      (IX-8),1
    325                              if(key == RESULT_RADIO)             // 处理Play,mode键.
   \   0479  FDE5              PUSH    IY
   \   047B  E1                POP     HL
   \   047C  3E07              LD      A,7
   \   047E  AD                XOR     L
   \   047F  B4                OR      H
   \   0480  CA0F05            JP      Z,?0171
   \   0483            ?0079:
    326                              {
    327                                  key = RESULT_IGNORE;
    328                                  loop = FALSE;
    329                              }
    330                              else
   \   0483            ?0080:
    331                              {
    332                                   if(key != RESULT_IGNORE && key != 0)       // 处理热键.
   \   0483  3E34              LD      A,52
   \   0485  AD                XOR     L
   \   0486  B4                OR      H
   \   0487  CA3505            JP      Z,?0112
   \   048A  7D                LD      A,L
   \   048B  B4                OR      H
   \   048C  CA3505            JP      Z,?0112
   \   048F            ?0085:
   \   048F            ?0084:
   \   048F            ?0082:
    333                                   {
    334                                       loop = FALSE;
   \   048F  C31F05            JP      LWRD ?0167
   \   0492            ?0083:
   \   0492            ?0081:
   \   0492            ?0076:
   \   0492            ?0064:
    335                                   }
    336                              }
    337                          }
    338                      }
    339                      else if(Direct==20)            //LAST搜索处理
   \   0492  FE14              CP      20
   \   0494  C22505            JP      NZ,?0088
   \   0497            ?0087:
    340                      {
    341                          if(((FMStatus.freq-100)<0x53d8)&&(FMStatus.mode==0))
   \   0497  2A0100            LD      HL,(FMStatus+1)
   \   049A  019CFF            LD      BC,65436
   \   049D  09                ADD     HL,BC
   \   049E  01D853            LD      BC,21464
   \   04A1  A7                AND     A
   \   04A2  ED42              SBC     HL,BC
   \   04A4  300B              JR      NC,?0090
   \   04A6  3A0500            LD      A,(FMStatus+5)
   \   04A9  B7                OR      A
   \   04AA  2005              JR      NZ,?0090
   \   04AC            ?0092:
   \   04AC            ?0091:
   \   04AC            ?0089:
    342                          {
    343                              FMStatus.freq=0xa5e0;
   \   04AC  21E0A5            LD      HL,42464
   \   04AF  1818              JR      ?0166
    344                              Search_Level--;
    345                          loop = RestartSearch(Search_Level);
   \   04B1            ?0090:
    346                      }
    347                          else if(((FMStatus.freq-100)<0x28e0)&&(FMStatus.mode==1))
   \   04B1  2A0100            LD      HL,(FMStatus+1)
   \   04B4  019CFF            LD      BC,65436
   \   04B7  09                ADD     HL,BC
   \   04B8  01E028            LD      BC,10464
   \   04BB  A7                AND     A
   \   04BC  ED42              SBC     HL,BC
   \   04BE  301F              JR      NC,?0095
   \   04C0  3A0500            LD      A,(FMStatus+5)
   \   04C3  3D                DEC     A
   \   04C4  2019              JR      NZ,?0095
   \   04C6            ?0097:
   \   04C6            ?0096:
   \   04C6            ?0094:
    348                              {
    349                                  FMStatus.freq=0x5f90;
   \   04C6  21905F            LD      HL,24464
   \   04C9            ?0166:
   \   04C9  220100            LD      (FMStatus+1),HL
    350                                  Search_Level--;
   \   04CC  DD35F9            DEC     (IX-7)
    351                                  loop = RestartSearch(Search_Level);
   \   04CF  DD5EF9            LD      E,(IX-7)
   \   04D2  3E00              LD      A,BYTE3 RestartSearch
   \   04D4  217903            LD      HL,LWRD RestartSearch
   \   04D7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04DA  DD75FA            LD      (IX-6),L
    352                              }
    353                              else
   \   04DD  180C              JR      ?0098
   \   04DF            ?0095:
    354                                  FMStatus.freq-=100;
   \   04DF  210100            LD      HL,FMStatus+1
   \   04E2  7E                LD      A,(HL)
   \   04E3  C69C              ADD     A,156
   \   04E5  77                LD      (HL),A
   \   04E6  23                INC     HL
   \   04E7  7E                LD      A,(HL)
   \   04E8  CEFF              ADC     A,255
   \   04EA  77                LD      (HL),A
   \   04EB            ?0098:
   \   04EB            ?0093:
    355                          if(loop && Search_Show2(DOWN))
   \   04EB  AF                XOR     A
   \   04EC  DDB6FA            OR      (IX-6)
   \   04EF  2844              JR      Z,?0112
   \   04F1  1E00              LD      E,0
   \   04F3  3E00              LD      A,BYTE3 Search_Show2
   \   04F5  21A302            LD      HL,LWRD Search_Show2
   \   04F8  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04FB  2C                INC     L
   \   04FC  2D                DEC     L
   \   04FD  2836              JR      Z,?0112
   \   04FF            ?0102:

⌨️ 快捷键说明

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