searchhandle.lst

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

LST
1,099
字号
     62                      }
   \   00F0            ?0026:
   \   00F0            ?0014:
     63                      else if(Direct==20)            //LAST搜索处理
   \   00F0  FE14              CP      20
   \   00F2  2055              JR      NZ,?0029
   \   00F4            ?0028:
     64                      {
     65                          if(((FMStatus.freq-100)<0x53d8)&&(FMStatus.mode==0))FMStatus.freq=0xa5e0;
   \   00F4  2A0100            LD      HL,(FMStatus+1)
   \   00F7  019CFF            LD      BC,65436
   \   00FA  09                ADD     HL,BC
   \   00FB  01D853            LD      BC,21464
   \   00FE  A7                AND     A
   \   00FF  ED42              SBC     HL,BC
   \   0101  300B              JR      NC,?0031
   \   0103  3A0500            LD      A,(FMStatus+5)
   \   0106  B7                OR      A
   \   0107  2005              JR      NZ,?0031
   \   0109            ?0033:
   \   0109            ?0032:
   \   0109            ?0030:
   \   0109  21E0A5            LD      HL,42464
   \   010C  1818              JR      ?0124
   \   010E            ?0031:
     66                          else if(((FMStatus.freq-100)<0x28e0)&&(FMStatus.mode==1))FMStatus.freq=0x5f90;
   \   010E  2A0100            LD      HL,(FMStatus+1)
   \   0111  019CFF            LD      BC,65436
   \   0114  09                ADD     HL,BC
   \   0115  01E028            LD      BC,10464
   \   0118  A7                AND     A
   \   0119  ED42              SBC     HL,BC
   \   011B  300E              JR      NC,?0036
   \   011D  3A0500            LD      A,(FMStatus+5)
   \   0120  3D                DEC     A
   \   0121  2008              JR      NZ,?0036
   \   0123            ?0038:
   \   0123            ?0037:
   \   0123            ?0035:
   \   0123  21905F            LD      HL,24464
   \   0126            ?0124:
   \   0126  220100            LD      (FMStatus+1),HL
     67                          else
   \   0129  180C              JR      ?0039
   \   012B            ?0036:
     68                              FMStatus.freq-=100;
   \   012B  210100            LD      HL,FMStatus+1
   \   012E  7E                LD      A,(HL)
   \   012F  C69C              ADD     A,156
   \   0131  77                LD      (HL),A
   \   0132  23                INC     HL
   \   0133  7E                LD      A,(HL)
   \   0134  CEFF              ADC     A,255
   \   0136  77                LD      (HL),A
   \   0137            ?0039:
   \   0137            ?0034:
     69                          if(Search_Show(DOWN))return 0;
   \   0137  D5                PUSH    DE
   \   0138  1E00              LD      E,0
   \   013A  3E00              LD      A,BYTE3 Search_Show
   \   013C  21FC01            LD      HL,LWRD Search_Show
   \   013F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0142  2C                INC     L
   \   0143  2D                DEC     L
   \   0144  D1                POP     DE
   \   0145  280C              JR      Z,?0044
   \   0147            ?0040:
   \   0147  1804              JR      ?0126
     70                      }
   \   0149            ?0041:
   \   0149            ?0029:
     71                      else if(Direct==50)
   \   0149  FE32              CP      50
   \   014B  2006              JR      NZ,?0044
   \   014D            ?0043:
     72                      {
     73                          Direct=0;
     74                          return 0;
   \   014D            ?0126:
   \   014D  210000            LD      HL,0
     75                      }
   \   0150  C3E701            JP      LWRD ?0071
   \   0153            ?0044:
   \   0153            ?0042:
   \   0153            ?0027:
   \   0153            ?0012:
     76                  }
     77                  if(need_draw)                //显示
   \   0153  210000            LD      HL,0
   \   0156  39                ADD     HL,SP
   \   0157  AF                XOR     A
   \   0158  B6                OR      (HL)
   \   0159  280E              JR      Z,?0046
   \   015B            ?0045:
     78                  {
     79                      ShowFreqInFM();
   \   015B  3E00              LD      A,BYTE3 ShowFreqInFM
   \   015D  21B102            LD      HL,LWRD ShowFreqInFM
   \   0160  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     80                      need_draw=FALSE;
   \   0163  210000            LD      HL,0
   \   0166  39                ADD     HL,SP
   \   0167  3600              LD      (HL),0
   \   0169            ?0046:
     81                  }
     82                  key=ap_get_message();
   \   0169  CD0000            CALL    LWRD ap_get_message
   \   016C  4F                LD      C,A
   \   016D  0600              LD      B,0
   \   016F  C5                PUSH    BC
   \   0170  DDE1              POP     IX
     83                  switch(key)
   \   0172  3E1D              LD      A,29
   \   0174  A9                XOR     C
   \   0175  CA8B00            JP      Z,?0009
   \   0178  3E31              LD      A,49
   \   017A  A9                XOR     C
   \   017B  CA8B00            JP      Z,?0009
   \   017E            ?0048:
     84                  {
     85                      case AP_MSG_STANDBY:
     86                      case AP_KEY_AB | AP_KEY_UP:        //搜索时不响音REC
     87                          //do nothing
     88                          break;
   \   017E            ?0049:
   \   017E  3E26              LD      A,38
   \   0180  A9                XOR     C
   \   0181  2019              JR      NZ,?0057
     89                      case AP_KEY_NEXT|AP_KEY_UP:        //NEXT搜索时按NEXT键,停止搜索
     90                          if(Searchflag==1)
   \   0183  42                LD      B,D
   \   0184  05                DEC     B
   \   0185  281E              JR      Z,?0128
   \   0187            ?0050:
     91                          {
     92                              Searchflag=0;
   \   0187            ?0051:
     93                          }
     94                          else if(Direct==10)
   \   0187  210200            LD      HL,2
   \   018A  39                ADD     HL,SP
   \   018B  7E                LD      A,(HL)
   \   018C  FE0A              CP      10
   \   018E  C28B00            JP      NZ,?0009
   \   0191            ?0053:
     95                          {
     96                              Direct=50;
   \   0191  3632              LD      (HL),50
     97                             if(FMStatus.volume)
   \   0193  3A0600            LD      A,(FMStatus+6)
   \   0196  B7                OR      A
   \   0197  CA8B00            JP      Z,?0009
   \   019A            ?0055:
     98                              fmSendCommand(MC_MUTE,releaseMUTE);
   \   019A  1821              JR      ?0127
   \   019C            ?0056:
   \   019C            ?0054:
   \   019C            ?0052:
     99                          }
    100                          break;
   \   019C            ?0057:
   \   019C  3E25              LD      A,37
   \   019E  A9                XOR     C
   \   019F  2024              JR      NZ,?0065
    101                      case AP_KEY_PREV|AP_KEY_UP:        //LAST搜索时按LAST键,停止搜索
    102                          if(Searchflag==1)
   \   01A1  42                LD      B,D
   \   01A2  05                DEC     B
   \   01A3  2005              JR      NZ,?0059
   \   01A5            ?0058:
    103                          {
    104                              Searchflag=0;
   \   01A5            ?0128:
   \   01A5  1600              LD      D,0
   \   01A7  C38B00            JP      LWRD ?0009
   \   01AA            ?0059:
    105                          }
    106                          else if(Direct==20)
   \   01AA  210200            LD      HL,2
   \   01AD  39                ADD     HL,SP
   \   01AE  7E                LD      A,(HL)
   \   01AF  FE14              CP      20
   \   01B1  C28B00            JP      NZ,?0009
   \   01B4            ?0061:
    107                          {
    108                              Direct=50;
   \   01B4  3632              LD      (HL),50
    109                              if(FMStatus.volume)
   \   01B6  3A0600            LD      A,(FMStatus+6)
   \   01B9  B7                OR      A
   \   01BA  CA8B00            JP      Z,?0009
   \   01BD            ?0063:
    110                              fmSendCommand(MC_MUTE,releaseMUTE);
   \   01BD            ?0127:
   \   01BD  D5                PUSH    DE
   \   01BE  CDEF01            CALL    LWRD ?0140
   \   01C1  D1                POP     DE
   \   01C2            ?0064:
   \   01C2            ?0062:
   \   01C2            ?0060:
    111                          }
    112                          break;
   \   01C2  C38B00            JP      LWRD ?0009
   \   01C5            ?0065:
    113                      default:                    //热键处理
    114                          key=ap_handle_hotkey(key);
   \   01C5  D5                PUSH    DE
   \   01C6  DDE5              PUSH    IX
   \   01C8  E1                POP     HL
   \   01C9  5D                LD      E,L
   \   01CA  CD0000            CALL    LWRD ap_handle_hotkey
   \   01CD  4F                LD      C,A
   \   01CE  C5                PUSH    BC
   \   01CF  DDE1              POP     IX
   \   01D1  D1                POP     DE
    115                          if(key == RESULT_REDRAW)need_draw=TRUE;
   \   01D2  3E32              LD      A,50
   \   01D4  A9                XOR     C
   \   01D5  2008              JR      NZ,?0067
   \   01D7            ?0066:
   \   01D7  68                LD      L,B
   \   01D8  60                LD      H,B
   \   01D9  39                ADD     HL,SP
   \   01DA  3601              LD      (HL),1
   \   01DC  C38B00            JP      LWRD ?0009
   \   01DF            ?0067:
    116                          else if(key!=0)
   \   01DF  DDE5              PUSH    IX
   \   01E1  E1                POP     HL
   \   01E2  7D                LD      A,L
   \   01E3  B4                OR      H
   \   01E4  CA8B00            JP      Z,?0009
   \   01E7            ?0069:
    117                          {
    118                              return key;
    119                          }
   \   01E7            ?0071:
   \   01E7  F1                POP     AF
   \   01E8  F1                POP     AF
   \   01E9  DDE1              POP     IX
   \   01EB  C1                POP     BC
   \   01EC  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01EF            ?0140:
   \   01EF  010000            LD      BC,0
   \   01F2            ?0141:
   \   01F2  1E0C              LD      E,12
   \   01F4            ?0142:
   \   01F4  3E00              LD      A,BYTE3 fmSendCommand
   \   01F6  210000            LD      HL,LWRD fmSendCommand
   \   01F9  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   01FC            ?0070:
   \   01FC            ?0068:
   \   01FC            ?0047:
    120                  }
    121              }
    122          }
   \   01FC            Search_Show:
    123          
    124          
    125          bool Search_Show(FM_direct_t Direct)
    126          {
   \   01FC  C5                PUSH    BC
   \   01FD  DDE5              PUSH    IX
   \   01FF  D5                PUSH    DE
   \   0200  F5                PUSH    AF
    127              bool Search_Flag;
    128              int    i;
    129              FMStatus.stereo_status=1;
   \   0201  3E01              LD      A,1
   \   0203  320700            LD      (FMStatus+7),A
    130              FMStatus.station=0;
   \   0206  AF                XOR     A
   \   0207  320300            LD      (FMStatus+3),A
    131              fmSendCommand(MC_MUTE,SetMUTE);
   \   020A  010100            LD      BC,1

⌨️ 快捷键说明

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