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

📄 sub_function1.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
    125                      if (FSELInit(FSEL_TYPE_VOICE, 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:
    126                      {
    127                          return 1;
   \   00EC            ?0128:
   \   00EC  210100            LD      HL,1
    128                      }
   \   00EF  1813              JR      ?0040
   \   00F1            ?0037:
    129                      result = FSELGetErrID();
   \   00F1  CD1401            CALL    LWRD ?0196
    130                      if (FSELGetErrID() != 0)
   \   00F4  CD1401            CALL    LWRD ?0196
   \   00F7  2C                INC     L
   \   00F8  2D                DEC     L
   \   00F9  2806              JR      Z,?0033
   \   00FB            ?0038:
    131                      {
    132                          DisplayErrInfor(CFILEOUT);//显示卡无文件
   \   00FB  117502            LD      DE,629
   \   00FE            ?0129:
   \   00FE  CD1F01            CALL    LWRD ?0197
    133                          return 0;
    134                      }
   \   0101            ?0039:
    135                      return 0;//非法
    136                  }
   \   0101            ?0033:
    137                  else
    138                  {
    139                      return 0;//没卡退出
   \   0101  210000            LD      HL,0
    140                  }
   \   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  1E01              LD      E,1
   \   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  117402            LD      DE,628
   \   011F            ?0197:
   \   011F  3E00              LD      A,BYTE3 DisplayErrInfor
   \   0121  210000            LD      HL,LWRD DisplayErrInfor
   \   0124  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    141          
    142              }
    143          
    144          }
   \   0127            UpdateFileSelector:
    145          
    146          
    147          /******************************************************************************
    148          ** 名字:
    149          ** 接口: int UpdateFileSelector(void)
    150          ** 描述: 更新文件选择器
    151          ** 输入参数: void
    152          ** 输出参数:
    153                      0: 更新不成功,要退出AP
    154                      1: 更新成功,已可用
    155          ** 使用说明:
    156          ********************************************************************************/
    157          int UpdateFileSelector(void)
    158          {
   \   0127  C5                PUSH    BC
   \   0128  D5                PUSH    DE
   \   0129  F5                PUSH    AF
    159          
    160              BYTE result;
    161              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
    162             // BankSwitch((unsigned long)FSELSetLocation >> 16);
    163          
    164              result = FSELSetLocation(& g_voice_vars.location);
   \   0130  110600            LD      DE,g_voice_vars+6
   \   0133  3E00              LD      A,BYTE3 fselSetLocation
   \   0135  210000            LD      HL,LWRD fselSetLocation
   \   0138  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   013B  E5                PUSH    HL
   \   013C  210200            LD      HL,2
   \   013F  39                ADD     HL,SP
   \   0140  C1                POP     BC
   \   0141  71                LD      (HL),C
    165          
    166              if (result == 1)
   \   0142  41                LD      B,C
   \   0143  05                DEC     B
   \   0144  2014              JR      NZ,?0042
   \   0146            ?0041:
    167              {
    168                  if (g_voice_vars.location.filename[0] != '\0')
   \   0146  3A2000            LD      A,(g_voice_vars+32)
   \   0149  B7                OR      A
   \   014A  201F              JR      NZ,?0050
   \   014C            ?0043:
    169                  {
    170                      return 1;
    171                  }
   \   014C            ?0044:
    172          
    173                  //找到目录的第一个文件
    174                  if (StartFileSelector() == 0)
   \   014C  3E00              LD      A,BYTE3 StartFileSelector
   \   014E  21C501            LD      HL,LWRD StartFileSelector
   \   0151  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0154  7D                LD      A,L
   \   0155  B4                OR      H
   \   0156  2013              JR      NZ,?0050
   \   0158            ?0045:
    175                  {
    176                      return 0;
   \   0158  185A              JR      ?0141
    177                  }
   \   015A            ?0046:
    178                      return 1;
    179              }
   \   015A            ?0042:
    180              else if (result == 2) // == 2 表示该目录是空
   \   015A  46                LD      B,(HL)
   \   015B  05                DEC     B
   \   015C  05                DEC     B
   \   015D  2011              JR      NZ,?0048
   \   015F            ?0047:
    181              {
    182                  //找到目录的第一个文件
    183                  if (StartFileSelector() == 0)
   \   015F  3E00              LD      A,BYTE3 StartFileSelector
   \   0161  21C501            LD      HL,LWRD StartFileSelector
   \   0164  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0167  7D                LD      A,L
   \   0168  B4                OR      H
   \   0169  2849              JR      Z,?0141
   \   016B            ?0049:
    184                  {
    185                      return 0;
    186                  }
   \   016B            ?0050:
    187                  return 1;
   \   016B  210100            LD      HL,1
    188          
    189              }
   \   016E  184F              JR      ?0060
   \   0170            ?0048:
    190          
    191              need_restore=FALSE;//时间断点参数从0开始
   \   0170  AF                XOR     A
   \   0171  320000            LD      (need_restore),A
    192          
    193              g_voice_vars.location.filename[0] = '\0';//找不到对应文件时要回到目录第一个文件
   \   0174  322000            LD      (g_voice_vars+32),A
    194              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   0177  DB4E              IN      A,(78)
   \   0179  CBDF              SET     3,A
   \   017B  D34E              OUT     (78),A
    195          
    196              result = FSELSetLocation(& g_voice_vars.location);
   \   017D  110600            LD      DE,g_voice_vars+6
   \   0180  3E00              LD      A,BYTE3 fselSetLocation
   \   0182  210000            LD      HL,LWRD fselSetLocation
   \   0185  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0188  E5                PUSH    HL
   \   0189  C1                POP     BC
    197          
    198              if (result != 0)//set 目录
   \   018A  AF                XOR     A
   \   018B  B1                OR      C
   \   018C  280E              JR      Z,?0052
   \   018E            ?0051:
    199              {
    200                  //找到目录的第一个文件
    201                  if (StartFileSelector() == 0)
   \   018E  3E00              LD      A,BYTE3 StartFileSelector
   \   0190  21C501            LD      HL,LWRD StartFileSelector
   \   0193  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0196  7D                LD      A,L
   \   0197  B4                OR      H
   \   0198  201F              JR      NZ,?0059
   \   019A            ?0053:
    202                  {
    203                      return 0;
   \   019A  1818              JR      ?0141
    204                  }
   \   019C            ?0054:
    205              }
    206          
    207              else
   \   019C            ?0052:
    208              {
    209                  // 初始化文件选择器
    210                  if (InitFileSelector() == 0)
   \   019C  3E00              LD      A,BYTE3 InitFileSelector
   \   019E  212C00            LD      HL,LWRD InitFileSelector
   \   01A1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01A4  7D                LD      A,L
   \   01A5  B4                OR      H
   \   01A6  280C              JR      Z,?0141
   \   01A8            ?0056:
    211                  {
    212                      return 0;
    213                  }
   \   01A8            ?0057:
    214                  //找到目录的第一个文件
    215                  if (StartFileSelector() == 0)
   \   01A8  3E00              LD      A,BYTE3 StartFileSelector
   \   01AA  21C501            LD      HL,LWRD StartFileSelector
   \   01AD  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01B0  7D                LD      A,L
   \   01B1  B4                OR      H
   \   01B2  2005              JR      NZ,?0059
   \   01B4            ?0058:
    216                  {
    217                      return 0;
   \   01B4            ?0141:
   \   01B4  210000            LD      HL,0
    218                  }
   \   01B7  1806              JR      ?0060
   \   01B9            ?0059:
   \   01B9            ?0055:
    219              }
    220          
    221              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   01B9  DB4E              IN      A,(78)
   \   01BB  CBDF              SET     3,A
   \   01BD  D34E              OUT     (78),A
    222          }
   \   01BF            ?0060:
   \   01BF  F1                POP     AF
   \   01C0  D1                POP     DE
   \   01C1  C1                POP     BC
   \   01C2  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01C5            StartFileSelector:
    223          
    224          
    225          
    226          /******************************************************************************
    227          ** 名字:
    228          ** 接口:
    229          ** 描述:
    230          ** 输入参数:
    231          ** 输出参数:
    232          ** 使用说明: //注,这函数是在初始化完文件选择器或set 完目录后调用的
    233          ********************************************************************************/
    234          int StartFileSelector(void)
    235          {
   \   01C5  C5                PUSH    BC
   \   01C6  D5                PUSH    DE
   \   01C7  DDE5              PUSH    IX
    236              int result;
    237          
    238              if (g_voice_vars.location.disk == 'C')
   \   01C9  3A0600            LD      A,(g_voice_vars+6)
   \   01CC  FE43              CP      67
   \   01CE  112000            LD      DE,g_voice_vars+32
   \   01D1  3E00              LD      A,BYTE3 fselGetNextFile
   \   01D3  210000            LD      HL,LWRD fselGetNextFile
   \   01D6  2072              JR      NZ,?0062
   \   01D8            ?0061:
    239              {
    240                  if (FSELGetNext(g_voice_vars.location.filename) != 0)
   \   01D8  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01DB  2C                INC     L
   \   01DC  2D                DEC     L
   \   01DD  C2AD02            JP      NZ,?0186
   \   01E0            ?0063:
    241                  {
    242                      return 1;
    243                  }
   \   01E0            ?0064:
    244          
    245                  if (FSELGetErrID() == 0)
   \   01E0  CD1401            CALL    LWRD ?0196
   \   01E3  2C                INC     L
   \   01E4  2D                DEC     L
   \   01E5  CAC102            JP      Z,?0106
   \   01E8            ?0065:
    246                  {
    247                      return 0;//非法
    248                  }
   \   01E8            ?0066:
    249                  //再查一次,因为可能这目录前面还有文件
    250                  if (InitFileSelector() == 0)
   \   01E8  3E00              LD      A,BYTE3 InitFileSelector
   \   01EA  212C00            LD      HL,LWRD InitFileSelector
   \   01ED  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01F0  7D                LD      A,L
   \   01F1  B4                OR      H
   \   01F2  CAC102            JP      Z,?0106
   \   01F5            ?0067:
    251                  {
    252                      return 0;
    253                  }

⌨️ 快捷键说明

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