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

📄 ui_director2.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   038A  C30000            JP      LWRD ?S_MUL_L02
   \   038D            init_dir_buf:
    235          
    236          
    237          //********************************************************************************
    238          //* Description :建立快速查询表,目录更新时需要重新调用此函数
    239          //*
    240          //** Arguments  :
    241          //*
    242          //* Returns     :
    243          //*
    244          //* Notes       :
    245          //*
    246          //********************************************************************************
    247          void init_dir_buf(void)
    248          {
   \   038D  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0390  DAFF              DEFW    -38
   \   0392  FDE5              PUSH    IY
    249              WORD i, tmp, total;
    250              char Backbuf[32];
    251              BOOL direxist;
    252          
    253              Initdirbuf();    //清除目录检索表
   \   0394  3E00              LD      A,BYTE3 Initdirbuf
   \   0396  210000            LD      HL,LWRD Initdirbuf
   \   0399  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    254              tmp = 1;
    255          
    256              FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   039C  210000            LD      HL,0
   \   039F  E5                PUSH    HL
   \   03A0  0E02              LD      C,2
   \   03A2  2E0A              LD      L,10
   \   03A4  39                ADD     HL,SP
   \   03A5  EB                EX      DE,HL
   \   03A6  CD0000            CALL    LWRD FS_Backup
   \   03A9  E1                POP     HL
    257              dir_total_num=count_dir_num();
   \   03AA  3E00              LD      A,BYTE3 count_dir_num
   \   03AC  210000            LD      HL,LWRD count_dir_num
   \   03AF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03B2  224B00            LD      (dir_total_num),HL
    258              file_total_num=GetFileTotalCur(FALSE);
   \   03B5  1E00              LD      E,0
   \   03B7  3E00              LD      A,BYTE3 GetFileTotalCur
   \   03B9  210000            LD      HL,LWRD GetFileTotalCur
   \   03BC  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03BF  224D00            LD      (file_total_num),HL
    259              list_total_num=dir_total_num+file_total_num+1;
   \   03C2  ED4B4B00          LD      BC,(dir_total_num)
   \   03C6  09                ADD     HL,BC
   \   03C7  23                INC     HL
   \   03C8  224F00            LD      (list_total_num),HL
    260              fselTotal=file_total_num;
   \   03CB  2A4D00            LD      HL,(file_total_num)
   \   03CE  220000            LD      (fselTotal),HL
    261          
    262              for(i = 1; i <= dir_total_num; i++)
   \   03D1  FD210100          LD      IY,1
   \   03D5  DD36DA01          LD      (IX-38),1
   \   03D9  DD36DB00          LD      (IX-37),0
   \   03DD            ?0034:
   \   03DD  DD4EDA            LD      C,(IX-38)
   \   03E0  DD46DB            LD      B,(IX-37)
   \   03E3  2A4B00            LD      HL,(dir_total_num)
   \   03E6  A7                AND     A
   \   03E7  ED42              SBC     HL,BC
   \   03E9  DAA704            JP      C,?0033
   \   03EC            ?0035:
   \   03EC            ?0038:
    263              {
    264                  while(1)
    265                  {
    266                      if(tmp == 1)
   \   03EC  FDE5              PUSH    IY
   \   03EE  E1                POP     HL
   \   03EF  3E01              LD      A,1
   \   03F1  AD                XOR     L
   \   03F2  B4                OR      H
   \   03F3  200D              JR      NZ,?0041
   \   03F5            ?0040:
    267                          FS_Dir(file_name,  Ui_IgnoreExt, FS_DIR_DIR);
   \   03F5  0E81              LD      C,129
   \   03F7  C5                PUSH    BC
   \   03F8  010000            LD      BC,Ui_IgnoreExt
   \   03FB  110000            LD      DE,file_name
   \   03FE  CD0000            CALL    LWRD FS_Dir
   \   0401  E1                POP     HL
   \   0402            ?0041:
    268                      if(tmp > 1)
   \   0402  FDE5              PUSH    IY
   \   0404  C1                POP     BC
   \   0405  210100            LD      HL,1
   \   0408  A7                AND     A
   \   0409  ED42              SBC     HL,BC
   \   040B  300D              JR      NC,?0043
   \   040D            ?0042:
    269                          FS_Dir(file_name,  Ui_IgnoreExt, FS_DIR_DIR_CONT);
   \   040D  0E01              LD      C,1
   \   040F  C5                PUSH    BC
   \   0410  010000            LD      BC,Ui_IgnoreExt
   \   0413  110000            LD      DE,file_name
   \   0416  CD0000            CALL    LWRD FS_Dir
   \   0419  E1                POP     HL
   \   041A            ?0043:
    270                      tmp++;
    271                      FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   041A  210000            LD      HL,0
   \   041D  E5                PUSH    HL
   \   041E  0E02              LD      C,2
   \   0420  2E0A              LD      L,10
   \   0422  39                ADD     HL,SP
   \   0423  EB                EX      DE,HL
   \   0424  CD0000            CALL    LWRD FS_Backup
   \   0427  E1                POP     HL
    272                      total = GetFileTotal(file_name, TRUE);
   \   0428  0E01              LD      C,1
   \   042A  110000            LD      DE,file_name
   \   042D  3E00              LD      A,BYTE3 GetFileTotal
   \   042F  210000            LD      HL,LWRD GetFileTotal
   \   0432  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0435  DD75DC            LD      (IX-36),L
   \   0438  DD74DD            LD      (IX-35),H
    273                      FS_CD(file_name);
   \   043B  110000            LD      DE,file_name
   \   043E  CD0000            CALL    LWRD FS_CD
    274                      if (ToDirEntry(file_name,1))
   \   0441  010100            LD      BC,1
   \   0444  110000            LD      DE,file_name
   \   0447  3E00              LD      A,BYTE3 ToDirEntry
   \   0449  210000            LD      HL,LWRD ToDirEntry
   \   044C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   044F  2C                INC     L
   \   0450  2D                DEC     L
   \   0451  FD23              INC     IY
   \   0453  2806              JR      Z,?0045
   \   0455            ?0044:
    275                      {
    276                          direxist=1;
   \   0455  DD36DE01          LD      (IX-34),1
    277                      }
    278                      else
   \   0459  1803              JR      ?0046
   \   045B            ?0045:
    279                      {
    280                          direxist=0;
   \   045B  DD75DE            LD      (IX-34),L
   \   045E            ?0046:
    281                      }
    282                      output8(0x4e,input8(0x4e)|0x8);
   \   045E  DB4E              IN      A,(78)
   \   0460  CBDF              SET     3,A
   \   0462  D34E              OUT     (78),A
    283                      FS_CD("\\");
   \   0464  110000            LD      DE,?0047
   \   0467  CD0000            CALL    LWRD FS_CD
    284          
    285                      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   046A  210000            LD      HL,0
   \   046D  E5                PUSH    HL
   \   046E  0E02              LD      C,2
   \   0470  2E0A              LD      L,10
   \   0472  39                ADD     HL,SP
   \   0473  EB                EX      DE,HL
   \   0474  CD0000            CALL    LWRD FS_Restore
   \   0477  E1                POP     HL
    286                      output8(0x4e,input8(0x4e)|0x08);        //清WATCH DOG
   \   0478  DB4E              IN      A,(78)
   \   047A  CBDF              SET     3,A
   \   047C  D34E              OUT     (78),A
    287                      if((total != 0)||(direxist))
   \   047E  DD7EDC            LD      A,(IX-36)
   \   0481  DDB6DD            OR      (IX-35)
   \   0484  2006              JR      NZ,?0037
   \   0486  DDB6DE            OR      (IX-34)
   \   0489  CAEC03            JP      Z,?0035
   \   048C            ?0050:
   \   048C            ?0051:
   \   048C            ?0048:
    288                      {
    289                              break;
   \   048C            ?0049:
   \   048C            ?0037:
    290                      }
    291                  }
    292                  Setdirbuf( tmp - 1 );
   \   048C  21FFFF            LD      HL,65535
   \   048F  FDE5              PUSH    IY
   \   0491  C1                POP     BC
   \   0492  09                ADD     HL,BC
   \   0493  EB                EX      DE,HL
   \   0494  3E00              LD      A,BYTE3 Setdirbuf
   \   0496  210000            LD      HL,LWRD Setdirbuf
   \   0499  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   049C  DD34DA            INC     (IX-38)
   \   049F  2003              JR      NZ,?0080
   \   04A1  DD34DB            INC     (IX-37)
   \   04A4            ?0080:
   \   04A4  C3DD03            JP      LWRD ?0034
   \   04A7            ?0033:
    293              }
    294              FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   04A7  210000            LD      HL,0
   \   04AA  E5                PUSH    HL
   \   04AB  0E02              LD      C,2
   \   04AD  2E0A              LD      L,10
   \   04AF  39                ADD     HL,SP
   \   04B0  EB                EX      DE,HL
   \   04B1  CD0000            CALL    LWRD FS_Restore
   \   04B4  E1                POP     HL
    295          }
   \   04B5  FDE1              POP     IY
   \   04B7  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   04BA            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          {
   \   04BA  FDE5              PUSH    IY
   \   04BC  DDE5              PUSH    IX
   \   04BE  C5                PUSH    BC
   \   04BF  F5                PUSH    AF
   \   04C0  D5                PUSH    DE
   \   04C1  DDE1              POP     IX
    310          
    311              WORD m, tmp,total_file;
    312              if(num>dir_total_num)
   \   04C3  2A4B00            LD      HL,(dir_total_num)
   \   04C6  A7                AND     A
   \   04C7  ED42              SBC     HL,BC
   \   04C9  3005              JR      NC,?0053
   \   04CB            ?0052:
    313                  return 0;
   \   04CB  2E00              LD      L,0
   \   04CD  C36205            JP      LWRD ?0065
   \   04D0            ?0053:
    314              if(num == 0)    //根目录或目录首
   \   04D0  79                LD      A,C
   \   04D1  B0                OR      B
   \   04D2  2030              JR      NZ,?0055
   \   04D4            ?0054:
    315              {
    316                  if(fselDirLayer==0)
   \   04D4  3A0000            LD      A,(fselDirLayer)
   \   04D7  B7                OR      A
   \   04D8  2015              JR      NZ,?0057
   \   04DA            ?0056:
    317                  {
    318                      file[0] = 'R';
   \   04DA  DD360052          LD      (IX+0),82
    319                      file[1] = 'O';
   \   04DE  DD36014F          LD      (IX+1),79
    320                      file[2] = 'O';
   \   04E2  DD36024F          LD      (IX+2),79
    321                      file[3] = 'T';
   \   04E6  DD360354          LD      (IX+3),84
    322                      file[4] = 0;
   \   04EA  DD7704            LD      (IX+4),A
    323                  }
    324                  else
   \   04ED  1808              JR      ?0058
   \   04EF            ?0057:

⌨️ 快捷键说明

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