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

📄 ui_director2.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 5 页
字号:
    240          //** Arguments  :
    241          //*
    242          //* Returns     :
    243          //*
    244          //* Notes       :
    245          //*
    246          //********************************************************************************
    247          void init_dir_buf(void)
    248          {
   \   038E  C5                PUSH    BC
   \   038F  D5                PUSH    DE
   \   0390  FDE5              PUSH    IY
   \   0392  DDE5              PUSH    IX
   \   0394  21DCFF            LD      HL,65500
   \   0397  39                ADD     HL,SP
   \   0398  F9                LD      SP,HL
    249              WORD i, tmp, total;
    250              char Backbuf[32];
    251              BOOL direxist;
    252          
    253              Initdirbuf();    //清除目录检索表
   \   0399  3E00              LD      A,BYTE3 Initdirbuf
   \   039B  210000            LD      HL,LWRD Initdirbuf
   \   039E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    254              tmp = 1;
    255          
    256              FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   03A1  210000            LD      HL,0
   \   03A4  E5                PUSH    HL
   \   03A5  0E02              LD      C,2
   \   03A7  2E06              LD      L,6
   \   03A9  39                ADD     HL,SP
   \   03AA  EB                EX      DE,HL
   \   03AB  CD0000            CALL    LWRD FS_Backup
   \   03AE  E1                POP     HL
    257              dir_total_num=count_dir_num();
   \   03AF  3E00              LD      A,BYTE3 count_dir_num
   \   03B1  210000            LD      HL,LWRD count_dir_num
   \   03B4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03B7  224B00            LD      (dir_total_num),HL
    258              file_total_num=GetFileTotalCur(FALSE);
   \   03BA  1E00              LD      E,0
   \   03BC  3E00              LD      A,BYTE3 GetFileTotalCur
   \   03BE  210000            LD      HL,LWRD GetFileTotalCur
   \   03C1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03C4  224D00            LD      (file_total_num),HL
    259              list_total_num=dir_total_num+file_total_num+1;
   \   03C7  ED4B4B00          LD      BC,(dir_total_num)
   \   03CB  09                ADD     HL,BC
   \   03CC  23                INC     HL
   \   03CD  224F00            LD      (list_total_num),HL
    260              fselTotal=file_total_num;
   \   03D0  2A4D00            LD      HL,(file_total_num)
   \   03D3  220000            LD      (fselTotal),HL
    261          
    262              for(i = 1; i <= dir_total_num; i++)
   \   03D6  DD210100          LD      IX,1
   \   03DA  210000            LD      HL,0
   \   03DD  39                ADD     HL,SP
   \   03DE  3601              LD      (HL),1
   \   03E0  23                INC     HL
   \   03E1  3600              LD      (HL),0
   \   03E3            ?0034:
   \   03E3  2B                DEC     HL
   \   03E4  4E                LD      C,(HL)
   \   03E5  23                INC     HL
   \   03E6  46                LD      B,(HL)
   \   03E7  2A4B00            LD      HL,(dir_total_num)
   \   03EA  A7                AND     A
   \   03EB  ED42              SBC     HL,BC
   \   03ED  DAAC04            JP      C,?0033
   \   03F0            ?0035:
   \   03F0            ?0038:
    263              {
    264                  while(1)
    265                  {
    266                      if(tmp == 1)
   \   03F0  DDE5              PUSH    IX
   \   03F2  E1                POP     HL
   \   03F3  3E01              LD      A,1
   \   03F5  AD                XOR     L
   \   03F6  B4                OR      H
   \   03F7  200D              JR      NZ,?0041
   \   03F9            ?0040:
    267                          FS_Dir(file_name,  Ui_IgnoreExt, FS_DIR_DIR);
   \   03F9  0E81              LD      C,129
   \   03FB  C5                PUSH    BC
   \   03FC  010000            LD      BC,Ui_IgnoreExt
   \   03FF  110000            LD      DE,file_name
   \   0402  CD0000            CALL    LWRD FS_Dir
   \   0405  E1                POP     HL
   \   0406            ?0041:
    268                      if(tmp > 1)
   \   0406  DDE5              PUSH    IX
   \   0408  C1                POP     BC
   \   0409  210100            LD      HL,1
   \   040C  A7                AND     A
   \   040D  ED42              SBC     HL,BC
   \   040F  300D              JR      NC,?0043
   \   0411            ?0042:
    269                          FS_Dir(file_name,  Ui_IgnoreExt, FS_DIR_DIR_CONT);
   \   0411  0E01              LD      C,1
   \   0413  C5                PUSH    BC
   \   0414  010000            LD      BC,Ui_IgnoreExt
   \   0417  110000            LD      DE,file_name
   \   041A  CD0000            CALL    LWRD FS_Dir
   \   041D  E1                POP     HL
   \   041E            ?0043:
    270                      tmp++;
    271                      FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   041E  210000            LD      HL,0
   \   0421  E5                PUSH    HL
   \   0422  0E02              LD      C,2
   \   0424  2E06              LD      L,6
   \   0426  39                ADD     HL,SP
   \   0427  EB                EX      DE,HL
   \   0428  CD0000            CALL    LWRD FS_Backup
   \   042B  E1                POP     HL
    272                      total = GetFileTotal(file_name, TRUE);
   \   042C  0E01              LD      C,1
   \   042E  110000            LD      DE,file_name
   \   0431  3E00              LD      A,BYTE3 GetFileTotal
   \   0433  210000            LD      HL,LWRD GetFileTotal
   \   0436  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0439  E5                PUSH    HL
   \   043A  FDE1              POP     IY
    273                      FS_CD(file_name);
   \   043C  110000            LD      DE,file_name
   \   043F  CD0000            CALL    LWRD FS_CD
    274                      if (ToDirEntry(file_name,1))
   \   0442  010100            LD      BC,1
   \   0445  110000            LD      DE,file_name
   \   0448  3E00              LD      A,BYTE3 ToDirEntry
   \   044A  210000            LD      HL,LWRD ToDirEntry
   \   044D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0450  2C                INC     L
   \   0451  2D                DEC     L
   \   0452  210200            LD      HL,2
   \   0455  39                ADD     HL,SP
   \   0456  DD23              INC     IX
   \   0458  2804              JR      Z,?0045
   \   045A            ?0044:
    275                      {
    276                          direxist=1;
   \   045A  3601              LD      (HL),1
    277                      }
    278                      else
   \   045C  1802              JR      ?0046
   \   045E            ?0045:
    279                      {
    280                          direxist=0;
   \   045E  3600              LD      (HL),0
   \   0460            ?0046:
    281                      }
    282                      output8(0x4e,input8(0x4e)|0x8);
   \   0460  DB4E              IN      A,(78)
   \   0462  CBDF              SET     3,A
   \   0464  D34E              OUT     (78),A
    283                      FS_CD("\\");
   \   0466  110000            LD      DE,?0047
   \   0469  CD0000            CALL    LWRD FS_CD
    284          
    285                      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   046C  210000            LD      HL,0
   \   046F  E5                PUSH    HL
   \   0470  0E02              LD      C,2
   \   0472  2E06              LD      L,6
   \   0474  39                ADD     HL,SP
   \   0475  EB                EX      DE,HL
   \   0476  CD0000            CALL    LWRD FS_Restore
   \   0479  E1                POP     HL
    286                      output8(0x4e,input8(0x4e)|0x08);        //清WATCH DOG
   \   047A  DB4E              IN      A,(78)
   \   047C  CBDF              SET     3,A
   \   047E  D34E              OUT     (78),A
    287                      if((total != 0)||(direxist))
   \   0480  FDE5              PUSH    IY
   \   0482  E1                POP     HL
   \   0483  7D                LD      A,L
   \   0484  B4                OR      H
   \   0485  2008              JR      NZ,?0050
   \   0487  210200            LD      HL,2
   \   048A  39                ADD     HL,SP
   \   048B  B6                OR      (HL)
   \   048C  CAF003            JP      Z,?0035
   \   048F            ?0050:
   \   048F            ?0051:
   \   048F            ?0048:
    288                      {
    289                              break;
   \   048F            ?0049:
   \   048F            ?0037:
    290                      }
    291                  }
    292                  Setdirbuf( tmp - 1 );
   \   048F  21FFFF            LD      HL,65535
   \   0492  DDE5              PUSH    IX
   \   0494  C1                POP     BC
   \   0495  09                ADD     HL,BC
   \   0496  EB                EX      DE,HL
   \   0497  3E00              LD      A,BYTE3 Setdirbuf
   \   0499  210000            LD      HL,LWRD Setdirbuf
   \   049C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   049F  210000            LD      HL,0
   \   04A2  39                ADD     HL,SP
   \   04A3  34                INC     (HL)
   \   04A4  23                INC     HL
   \   04A5  C2E303            JP      NZ,?0034
   \   04A8  34                INC     (HL)
   \   04A9  C3E303            JP      LWRD ?0034
   \   04AC            ?0033:
    293              }
    294              FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   04AC  210000            LD      HL,0
   \   04AF  E5                PUSH    HL
   \   04B0  0E02              LD      C,2
   \   04B2  2E06              LD      L,6
   \   04B4  39                ADD     HL,SP
   \   04B5  EB                EX      DE,HL
   \   04B6  CD0000            CALL    LWRD FS_Restore
   \   04B9  E1                POP     HL
    295          }
   \   04BA  212400            LD      HL,36
   \   04BD  39                ADD     HL,SP
   \   04BE  F9                LD      SP,HL
   \   04BF  DDE1              POP     IX
   \   04C1  FDE1              POP     IY
   \   04C3  D1                POP     DE
   \   04C4  C1                POP     BC
   \   04C5  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   04C8            get_dir_name:
    296          
    297          /********************************************************************************
    298          * Description : 获取第N个有效的目录
    299          *
    300          * Arguments   :
    301          *
    302          * Returns     :
    303          *
    304          * Notes       :
    305          *
    306          ********************************************************************************
    307          */
    308          bool get_dir_name(char *file, WORD num)
    309          {
   \   04C8  FDE5              PUSH    IY
   \   04CA  DDE5              PUSH    IX
   \   04CC  C5                PUSH    BC
   \   04CD  F5                PUSH    AF
   \   04CE  D5                PUSH    DE
   \   04CF  DDE1              POP     IX
    310          
    311              WORD m, tmp,total_file;
    312              if(num>dir_total_num)
   \   04D1  2A4B00            LD      HL,(dir_total_num)
   \   04D4  A7                AND     A
   \   04D5  ED42              SBC     HL,BC
   \   04D7  3005              JR      NC,?0053
   \   04D9            ?0052:
    313                  return 0;
   \   04D9  2E00              LD      L,0
   \   04DB  C37605            JP      LWRD ?0065
   \   04DE            ?0053:
    314              if(num == 0)    //根目录或目录首
   \   04DE  79                LD      A,C
   \   04DF  B0                OR      B
   \   04E0  2030              JR      NZ,?0055
   \   04E2            ?0054:
    315              {
    316                  if(fselDirLayer==0)
   \   04E2  3A0000            LD      A,(fselDirLayer)
   \   04E5  B7                OR      A
   \   04E6  2015              JR      NZ,?0057
   \   04E8            ?0056:
    317                  {

⌨️ 快捷键说明

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