sub_function1.lst

来自「MP3 整个 SDK」· LST 代码 · 共 932 行 · 第 1/3 页

LST
932
字号
    252                  }
   \   01F7            ?0068:
    253                  if (FSELGetNext(g_viewpic_vars.location.filename) != 0)
   \   01F7  CDCD02            CALL    LWRD ?0194
   \   01FA  2C                INC     L
   \   01FB  2D                DEC     L
   \   01FC  C2AF02            JP      NZ,?0186
   \   01FF            ?0069:
    254                  {
    255                      return 1;
    256                  }
   \   01FF            ?0070:
    257          
    258                  if (FSELGetErrID() == 0)
   \   01FF  CD1401            CALL    LWRD ?0196
   \   0202  2C                INC     L
   \   0203  2D                DEC     L
   \   0204  CAC302            JP      Z,?0106
   \   0207            ?0071:
    259                  {
    260                      return 0;//非法
    261                  }
   \   0207            ?0072:
    262          
    263                  if (g_viewpic_vars.location.disk == 'H')
   \   0207  3A0400            LD      A,(g_viewpic_vars+4)
   \   020A  FE48              CP      72
   \   020C  2839              JR      Z,?0187
   \   020E            ?0073:
    264                  {
    265                      DisplayErrInfor(CFILEOUT);//显示卡无文件
    266                      return 0; //因为前面已从 'C' 查到 'H' 了,已查完,未找到文件
    267                  }
   \   020E            ?0074:
    268                  else //还在 'C'
    269                  {
    270                      DisplayErrInfor(DFILEOUT);//显示磁盘无文件
   \   020E  CD1C01            CALL    LWRD ?0198
    271          
    272                      //检测 sd 卡是否存在
    273                  if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
   \   0211  1E01              LD      E,1
   \   0213  CD0000            CALL    LWRD DRV_DetectUD
   \   0216  FE20              CP      32
   \   0218  C2C302            JP      NZ,?0106
   \   021B  3A0000            LD      A,(g_DiskStateFlag)
   \   021E  CB5F              BIT     3,A
   \   0220  CAC302            JP      Z,?0106
   \   0223            ?0078:
   \   0223            ?0077:
   \   0223            ?0075:
    274                      {//有卡
    275                          g_viewpic_vars.location.disk = 'H';
   \   0223  3E48              LD      A,72
   \   0225  320400            LD      (g_viewpic_vars+4),A
    276                          if (FSELInit(FSEL_TYPE_DSC, FSEL_ALL_SEQUENCE,  FSEL_TYPE_COMMONDIR, 'H'))
   \   0228  4F                LD      C,A
   \   0229  C5                PUSH    BC
   \   022A  0E00              LD      C,0
   \   022C  C5                PUSH    BC
   \   022D  CD0A01            CALL    LWRD ?0195
   \   0230  F1                POP     AF
   \   0231  F1                POP     AF
   \   0232  2C                INC     L
   \   0233  2D                DEC     L
   \   0234  2807              JR      Z,?0082
   \   0236            ?0079:
    277                          {
    278                              if (FSELGetNext(g_viewpic_vars.location.filename) != 0)
   \   0236  CDCD02            CALL    LWRD ?0194
   \   0239  2C                INC     L
   \   023A  2D                DEC     L
   \   023B  2072              JR      NZ,?0186
   \   023D            ?0081:
    279                              {
    280                                  return 1;
    281                              }
   \   023D            ?0082:
   \   023D            ?0080:
    282                          }
    283                          result = FSELGetErrID();
   \   023D  CD1401            CALL    LWRD ?0196
    284                          if (FSELGetErrID() != 0)
   \   0240  CD1401            CALL    LWRD ?0196
   \   0243  2C                INC     L
   \   0244  2D                DEC     L
   \   0245  287C              JR      Z,?0106
   \   0247            ?0083:
    285                          {
    286                              DisplayErrInfor(CFILEOUT);//显示卡无文件
   \   0247            ?0187:
   \   0247  119301            LD      DE,403
   \   024A  1848              JR      ?0191
    287                              return 0;
    288                          }
   \   024C            ?0084:
    289                          return 0;//非法
    290                      }
   \   024C            ?0076:
    291                      else
    292                      {
    293                          return 0;//没卡退出
    294                      }
    295                  }
    296                  return 0;
    297              }
   \   024C            ?0062:
    298              else //g_viewpic_vars.location.disk == 'H'
    299              {
    300                  if (FSELGetNext(g_viewpic_vars.location.filename) != 0)
   \   024C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   024F  2C                INC     L
   \   0250  2D                DEC     L
   \   0251  205C              JR      NZ,?0186
   \   0253            ?0085:
    301                  {
    302                      return 1;//找到文件
    303                  }
   \   0253            ?0086:
    304          
    305                  if (FSELGetErrID() == 0)
   \   0253  CD1401            CALL    LWRD ?0196
   \   0256  2C                INC     L
   \   0257  2D                DEC     L
   \   0258  2869              JR      Z,?0106
   \   025A            ?0087:
    306                  {
    307                      return 0;//非法
    308                  }
   \   025A            ?0088:
    309          
    310                  //再查一次,因为可能这目录前面还有文件(虽然后面已无文件)
    311                  if (InitFileSelector() == 0)
   \   025A  3E00              LD      A,BYTE3 InitFileSelector
   \   025C  212C00            LD      HL,LWRD InitFileSelector
   \   025F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0262  7D                LD      A,L
   \   0263  B4                OR      H
   \   0264  285D              JR      Z,?0106
   \   0266            ?0089:
    312                  {
    313                      return 0;
    314                  }
   \   0266            ?0090:
    315          
    316                  if (FSELGetNext(g_viewpic_vars.location.filename) != 0)
   \   0266  CDCD02            CALL    LWRD ?0194
   \   0269  2C                INC     L
   \   026A  2D                DEC     L
   \   026B  2042              JR      NZ,?0186
   \   026D            ?0091:
    317                  {
    318                      return 1;//找到文件
    319                  }
   \   026D            ?0092:
    320          
    321                  if (FSELGetErrID() == 0)
   \   026D  CD1401            CALL    LWRD ?0196
   \   0270  2C                INC     L
   \   0271  2D                DEC     L
   \   0272  284F              JR      Z,?0106
   \   0274            ?0093:
    322                  {
    323                      return 0;//非法
    324                  }
   \   0274            ?0094:
    325          
    326                  if (g_viewpic_vars.location.disk == 'C')
   \   0274  3A0400            LD      A,(g_viewpic_vars+4)
   \   0277  FE43              CP      67
   \   0279  2816              JR      Z,?0193
   \   027B            ?0095:
    327                  {
    328                      DisplayErrInfor(DFILEOUT);//显示磁盘无文件
    329                      return 0; //因为前面已从 'H' 查到 'C' 了,已查完,未找到文件
    330                  }
   \   027B            ?0096:
    331                  DisplayErrInfor(CFILEOUT);//显示卡无文件
   \   027B  119301            LD      DE,403
   \   027E  CD1F01            CALL    LWRD ?0197
    332          
    333                  g_viewpic_vars.location.disk = 'C';
   \   0281  3E43              LD      A,67
   \   0283  320400            LD      (g_viewpic_vars+4),A
    334                  if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
   \   0286  3A0000            LD      A,(g_DiskStateFlag)
   \   0289  CB7F              BIT     7,A
   \   028B  2836              JR      Z,?0106
   \   028D            ?0097:
    335                  {
    336                      return 0;
    337                  }
   \   028D            ?0098:
    338          
    339                  if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
   \   028D  CB77              BIT     6,A
   \   028F  2808              JR      Z,?0100
   \   0291            ?0099:
    340                  {
    341                      DisplayErrInfor(DFILEOUT);//显示磁盘无文件
   \   0291            ?0193:
   \   0291  119201            LD      DE,402
   \   0294            ?0191:
   \   0294  CD1F01            CALL    LWRD ?0197
    342                      return 0;
   \   0297  182A              JR      ?0106
    343                  }
   \   0299            ?0100:
    344          
    345                  if (FSELInit(FSEL_TYPE_DSC, FSEL_ALL_SEQUENCE,  FSEL_TYPE_COMMONDIR, 'C'))
   \   0299  0E43              LD      C,67
   \   029B  C5                PUSH    BC
   \   029C  0E00              LD      C,0
   \   029E  C5                PUSH    BC
   \   029F  CD0A01            CALL    LWRD ?0195
   \   02A2  F1                POP     AF
   \   02A3  F1                POP     AF
   \   02A4  2C                INC     L
   \   02A5  2D                DEC     L
   \   02A6  280C              JR      Z,?0104
   \   02A8            ?0101:
    346                  {
    347                      if (FSELGetNext(g_viewpic_vars.location.filename) != 0)
   \   02A8  CDCD02            CALL    LWRD ?0194
   \   02AB  2C                INC     L
   \   02AC  2D                DEC     L
   \   02AD  2805              JR      Z,?0104
   \   02AF            ?0103:
    348                      {
    349                          return 1;//找到文件
   \   02AF            ?0186:
   \   02AF  210100            LD      HL,1
    350                      }
   \   02B2  1812              JR      ?0107
   \   02B4            ?0104:
   \   02B4            ?0102:
    351                  }
    352                  result = FSELGetErrID();
   \   02B4  CD1401            CALL    LWRD ?0196
    353          
    354                  if (result != 0)
   \   02B7  7D                LD      A,L
   \   02B8  B7                OR      A
   \   02B9  2808              JR      Z,?0106
   \   02BB            ?0105:
    355                  {
    356                      DisplayErrInfor(DFILEOUT);//显示磁盘无文件
   \   02BB  CD1C01            CALL    LWRD ?0198
    357                      g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
   \   02BE  210000            LD      HL,g_DiskStateFlag
   \   02C1  CBF6              SET     6,(HL)
    358                      return 0;//
    359                  }
   \   02C3            ?0106:
    360                  return 0;
   \   02C3  210000            LD      HL,0
    361              }
   \   02C6            ?0107:
   \   02C6  DDE1              POP     IX
   \   02C8  D1                POP     DE
   \   02C9  C1                POP     BC
   \   02CA  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   02CD            ?0194:
   \   02CD  111E00            LD      DE,g_viewpic_vars+30
   \   02D0  3E00              LD      A,BYTE3 fselGetNextFile
   \   02D2  210000            LD      HL,LWRD fselGetNextFile
   \   02D5  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    362          }
    363          
    364          
    365          /*
    366          // error information defines in file selector
    367          #define FSEL_ERR_OUTOF          1
    368          #define FSEL_ERR_EMPTY          2
    369          #define FSEL_ERR_SETDIR         3
    370          #define FSEL_ERR_SETFILE        4
    371          #define FSEL_ERR_EXCEPTION      5
    372          
    373          
    374          #define FSEL_ERR_FS             20
    375          #define FSEL_ERR_FAIL           21
    376          #define FSEL_ERR_DISK           22
    377          #define FSEL_ERR_PLAYLIST       23
    378          */
    379          
    380          /*
    381          //error information display
    382          1) 磁盘错  : 在 main.c 中已报
    383          2) 卡错    : 在 main.c 中已报
    384          
    385          3) 磁盘无文件
    386          4) 卡无文件
    387          
    388          5) 空间满    :在 ui_follow.c 文件中已报
    389          7) 目录已满     :在 ui_follow.c 文件中已报
    390          
    391          6) 电量不足!:
    392          8) 格式错误
    393          9) 卡已拔出
    394          
    395          */
   \   02D8                    END

Errors: none
Warnings: none
Code size: 728
Constant size: 0
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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