⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub_function3.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
    123                      if (FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE,  FSEL_TYPE_COMMONDIR, 'H'))
   \   00DE  4F                LD      C,A
   \   00DF  C5                PUSH    BC
   \   00E0  0E00              LD      C,0
   \   00E2  C5                PUSH    BC
   \   00E3  CD0A01            CALL    LWRD ?0195
   \   00E6  F1                POP     AF
   \   00E7  F1                POP     AF
   \   00E8  2C                INC     L
   \   00E9  2D                DEC     L
   \   00EA  2805              JR      Z,?0037
   \   00EC            ?0036:
    124                      {
    125                          return 1;
   \   00EC            ?0128:
   \   00EC  210100            LD      HL,1
    126                      }
   \   00EF  1813              JR      ?0040
   \   00F1            ?0037:
    127                      result = FSELGetErrID();
   \   00F1  CD1401            CALL    LWRD ?0196
    128                      if (FSELGetErrID() != 0)
   \   00F4  CD1401            CALL    LWRD ?0196
   \   00F7  2C                INC     L
   \   00F8  2D                DEC     L
   \   00F9  2806              JR      Z,?0033
   \   00FB            ?0038:
    129                      {
    130                          DisplayErrInfor(CFILEOUT);//显示卡无文件
   \   00FB  119301            LD      DE,403
   \   00FE            ?0129:
   \   00FE  CD1F01            CALL    LWRD ?0197
    131                          return 0;
    132                      }
   \   0101            ?0039:
    133                      return 0;//非法
    134                  }
   \   0101            ?0033:
    135                  else
    136                  {
    137                      return 0;//没卡退出
   \   0101  210000            LD      HL,0
    138                  }
   \   0104            ?0040:
   \   0104  F1                POP     AF
   \   0105  D1                POP     DE
   \   0106  C1                POP     BC
   \   0107  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   010A            ?0195:
   \   010A  1E05              LD      E,5
   \   010C  3E00              LD      A,BYTE3 fselInit
   \   010E  210000            LD      HL,LWRD fselInit
   \   0111  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0114            ?0196:
   \   0114  3E00              LD      A,BYTE3 fselGetErrID
   \   0116  210000            LD      HL,LWRD fselGetErrID
   \   0119  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   011C            ?0198:
   \   011C  119201            LD      DE,402
   \   011F            ?0197:
   \   011F  3E00              LD      A,BYTE3 DisplayErrInfor
   \   0121  210000            LD      HL,LWRD DisplayErrInfor
   \   0124  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    139          
    140              }
    141          
    142          }
   \   0127            UpdateFileSelector:
    143          
    144          
    145          /******************************************************************************
    146          ** 名字:
    147          ** 接口: int UpdateFileSelector(void)
    148          ** 描述: 更新文件选择器
    149          ** 输入参数: void
    150          ** 输出参数:
    151                      0: 更新不成功,要退出AP
    152                      1: 更新成功,已可用
    153          ** 使用说明:
    154          ********************************************************************************/
    155          int UpdateFileSelector(void)
    156          {
   \   0127  C5                PUSH    BC
   \   0128  D5                PUSH    DE
   \   0129  F5                PUSH    AF
    157          
    158              BYTE result;
    159          
    160              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   012A  DB4E              IN      A,(78)
   \   012C  CBDF              SET     3,A
   \   012E  D34E              OUT     (78),A
    161              BankSwitch((unsigned long)FSELSetLocation >> 16);
   \   0130  0E00              LD      C,BYTE3 fselSetLocation
   \   0132  59                LD      E,C
   \   0133  CD0000            CALL    LWRD BankSwitch
    162          
    163              result = FSELSetLocation(& g_amv_vars.location);
   \   0136  110500            LD      DE,g_amv_vars+5
   \   0139  79                LD      A,C
   \   013A  210000            LD      HL,LWRD fselSetLocation
   \   013D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0140  E5                PUSH    HL
   \   0141  210200            LD      HL,2
   \   0144  39                ADD     HL,SP
   \   0145  C1                POP     BC
   \   0146  71                LD      (HL),C
    164          
    165              if (result == 1)
   \   0147  41                LD      B,C
   \   0148  05                DEC     B
   \   0149  2014              JR      NZ,?0042
   \   014B            ?0041:
    166              {
    167                  if (g_amv_vars.location.filename[0] != '\0')
   \   014B  3A1F00            LD      A,(g_amv_vars+31)
   \   014E  B7                OR      A
   \   014F  201F              JR      NZ,?0050
   \   0151            ?0043:
    168                  {
    169                      return 1;
    170                  }
   \   0151            ?0044:
    171          
    172                  //找到目录的第一个文件
    173                  if (StartFileSelector() == 0)
   \   0151  3E00              LD      A,BYTE3 StartFileSelector
   \   0153  21CF01            LD      HL,LWRD StartFileSelector
   \   0156  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0159  7D                LD      A,L
   \   015A  B4                OR      H
   \   015B  2013              JR      NZ,?0050
   \   015D            ?0045:
    174                  {
    175                      return 0;
   \   015D  185F              JR      ?0141
    176                  }
   \   015F            ?0046:
    177                      return 1;
    178              }
   \   015F            ?0042:
    179              else if (result == 2) // == 2 表示该目录是空
   \   015F  46                LD      B,(HL)
   \   0160  05                DEC     B
   \   0161  05                DEC     B
   \   0162  2011              JR      NZ,?0048
   \   0164            ?0047:
    180              {
    181                  //找到目录的第一个文件
    182                  if (StartFileSelector() == 0)
   \   0164  3E00              LD      A,BYTE3 StartFileSelector
   \   0166  21CF01            LD      HL,LWRD StartFileSelector
   \   0169  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   016C  7D                LD      A,L
   \   016D  B4                OR      H
   \   016E  284E              JR      Z,?0141
   \   0170            ?0049:
    183                  {
    184                      return 0;
    185                  }
   \   0170            ?0050:
    186                  return 1;
   \   0170  210100            LD      HL,1
    187          
    188              }
   \   0173  1854              JR      ?0060
   \   0175            ?0048:
    189          
    190              ClearTimePara();//时间断点参数从0开始
   \   0175  3E00              LD      A,BYTE3 ClearTimePara
   \   0177  210000            LD      HL,LWRD ClearTimePara
   \   017A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    191              g_amv_vars.location.filename[0] = '\0';//找不到对应文件时要回到目录第一个文件
   \   017D  AF                XOR     A
   \   017E  321F00            LD      (g_amv_vars+31),A
    192              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   0181  DB4E              IN      A,(78)
   \   0183  CBDF              SET     3,A
   \   0185  D34E              OUT     (78),A
    193          
    194              result = FSELSetLocation(& g_amv_vars.location);
   \   0187  110500            LD      DE,g_amv_vars+5
   \   018A  3E00              LD      A,BYTE3 fselSetLocation
   \   018C  210000            LD      HL,LWRD fselSetLocation
   \   018F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0192  E5                PUSH    HL
   \   0193  C1                POP     BC
    195          
    196              if (result != 0)//set 目录
   \   0194  AF                XOR     A
   \   0195  B1                OR      C
   \   0196  280E              JR      Z,?0052
   \   0198            ?0051:
    197              {
    198                  //找到目录的第一个文件
    199                  if (StartFileSelector() == 0)
   \   0198  3E00              LD      A,BYTE3 StartFileSelector
   \   019A  21CF01            LD      HL,LWRD StartFileSelector
   \   019D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01A0  7D                LD      A,L
   \   01A1  B4                OR      H
   \   01A2  201F              JR      NZ,?0059
   \   01A4            ?0053:
    200                  {
    201                      return 0;
   \   01A4  1818              JR      ?0141
    202                  }
   \   01A6            ?0054:
    203              }
    204          
    205              else
   \   01A6            ?0052:
    206              {
    207                  // 初始化文件选择器
    208                  if (InitFileSelector() == 0)
   \   01A6  3E00              LD      A,BYTE3 InitFileSelector
   \   01A8  212C00            LD      HL,LWRD InitFileSelector
   \   01AB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01AE  7D                LD      A,L
   \   01AF  B4                OR      H
   \   01B0  280C              JR      Z,?0141
   \   01B2            ?0056:
    209                  {
    210                      return 0;
    211                  }
   \   01B2            ?0057:
    212                  //找到目录的第一个文件
    213                  if (StartFileSelector() == 0)
   \   01B2  3E00              LD      A,BYTE3 StartFileSelector
   \   01B4  21CF01            LD      HL,LWRD StartFileSelector
   \   01B7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01BA  7D                LD      A,L
   \   01BB  B4                OR      H
   \   01BC  2005              JR      NZ,?0059
   \   01BE            ?0058:
    214                  {
    215                      return 0;
   \   01BE            ?0141:
   \   01BE  210000            LD      HL,0
    216                  }
   \   01C1  1806              JR      ?0060
   \   01C3            ?0059:
   \   01C3            ?0055:
    217              }
    218          
    219              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   01C3  DB4E              IN      A,(78)
   \   01C5  CBDF              SET     3,A
   \   01C7  D34E              OUT     (78),A
    220          }
   \   01C9            ?0060:
   \   01C9  F1                POP     AF
   \   01CA  D1                POP     DE
   \   01CB  C1                POP     BC
   \   01CC  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01CF            StartFileSelector:
    221          
    222          
    223          
    224          /******************************************************************************
    225          ** 名字:
    226          ** 接口:
    227          ** 描述:
    228          ** 输入参数:
    229          ** 输出参数:
    230          ** 使用说明: //注,这函数是在初始化完文件选择器或set 完目录后调用的
    231          ********************************************************************************/
    232          int StartFileSelector(void)
    233          {
   \   01CF  C5                PUSH    BC
   \   01D0  D5                PUSH    DE
   \   01D1  DDE5              PUSH    IX
    234              int result;
    235          
    236              if (g_amv_vars.location.disk == 'C')
   \   01D3  3A0500            LD      A,(g_amv_vars+5)
   \   01D6  FE43              CP      67
   \   01D8  111F00            LD      DE,g_amv_vars+31
   \   01DB  3E00              LD      A,BYTE3 fselGetNextFile
   \   01DD  210000            LD      HL,LWRD fselGetNextFile
   \   01E0  2072              JR      NZ,?0062
   \   01E2            ?0061:
    237              {
    238                  if (FSELGetNext(g_amv_vars.location.filename) != 0)
   \   01E2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01E5  2C                INC     L
   \   01E6  2D                DEC     L
   \   01E7  C2B702            JP      NZ,?0186
   \   01EA            ?0063:
    239                  {
    240                      return 1;
    241                  }
   \   01EA            ?0064:
    242          
    243                  if (FSELGetErrID() == 0)
   \   01EA  CD1401            CALL    LWRD ?0196
   \   01ED  2C                INC     L
   \   01EE  2D                DEC     L
   \   01EF  CACB02            JP      Z,?0106
   \   01F2            ?0065:
    244                  {
    245                      return 0;//非法
    246                  }
   \   01F2            ?0066:
    247                  //再查一次,因为可能这目录前面还有文件
    248                  if (InitFileSelector() == 0)
   \   01F2  3E00              LD      A,BYTE3 InitFileSelector
   \   01F4  212C00            LD      HL,LWRD InitFileSelector
   \   01F7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01FA  7D                LD      A,L
   \   01FB  B4                OR      H
   \   01FC  CACB02            JP      Z,?0106
   \   01FF            ?0067:

⌨️ 快捷键说明

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