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

📄 ui_directory_fun.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 2 页
字号:
    118              return k-1;                       
   \   0129  21FFFF            LD      HL,65535
   \   012C  DD4EF6            LD      C,(IX-10)
   \   012F  DD46F7            LD      B,(IX-9)
   \   0132  09                ADD     HL,BC
    119          } 
   \   0133            ?0029:
   \   0133  DDF9              LD      SP,IX
   \   0135  DDE1              POP     IX
   \   0137  FDE1              POP     IY
   \   0139  C1                POP     BC
   \   013A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   013D            GetActiveDirFrom:
    120          
    121          //********************************************************************************
    122          //* Description :输入目录序号DirNo,输出为此目录在list表中的位置 
    123          //*        n 最大值为999   
    124          //** Arguments   :
    125          //*
    126          //* Returns     : 当前目录在文件/目录列表中的序号
    127          //*
    128          //* Notes       :  
    129          //*        
    130          //********************************************************************************
    131          WORD GetActiveDirFrom(WORD n)        
    132          {
   \   013D  C5                PUSH    BC
   \   013E  FDE5              PUSH    IY
   \   0140  DDE5              PUSH    IX
   \   0142  DD210000          LD      IX,0
   \   0146  DD39              ADD     IX,SP
   \   0148  D5                PUSH    DE
   \   0149  F5                PUSH    AF
   \   014A  F5                PUSH    AF
   \   014B  F5                PUSH    AF
   \   014C  F5                PUSH    AF
    133              WORD h=0,k=0;
    134              BYTE m,i,j;
    135              BYTE needbreak=0; 
    136              byte status; 
    137          
    138              if(n>999)    
   \   014D  AF                XOR     A
   \   014E  DD77F6            LD      (IX-10),A
   \   0151  DD77F7            LD      (IX-9),A
   \   0154  FD210000          LD      IY,0
   \   0158  DD77FB            LD      (IX-5),A
   \   015B  21E703            LD      HL,999
   \   015E  ED52              SBC     HL,DE
   \   0160  380D              JR      C,?0070
   \   0162            ?0030:
    139                  return 0;
   \   0162            ?0031:
    140              status = input8(0x05);
   \   0162  DB05              IN      A,(5)
   \   0164  DD77FC            LD      (IX-4),A
    141              output8(0x05, 0xf6);        
   \   0167  3EF6              LD      A,246
   \   0169  D305              OUT     (5),A
    142              
    143              if(n==0)
   \   016B  7B                LD      A,E
   \   016C  B2                OR      D
   \   016D  2006              JR      NZ,?0033
   \   016F            ?0032:
    144                  return 0;
   \   016F            ?0070:
   \   016F  210000            LD      HL,0
   \   0172  C30202            JP      LWRD ?0052
   \   0175            ?0033:
    145              for(i=0;i<125;i++)
   \   0175  DD36F800          LD      (IX-8),0
   \   0179            ?0035:
   \   0179  DD7EF8            LD      A,(IX-8)
   \   017C  FE7D              CP      125
   \   017E  3077              JR      NC,?0034
   \   0180            ?0036:
    146              {
    147                  k++;
    148                  m=dirbuf[i];
   \   0180  4F                LD      C,A
   \   0181  0600              LD      B,0
   \   0183  210000            LD      HL,dirbuf
   \   0186  09                ADD     HL,BC
   \   0187  46                LD      B,(HL)
   \   0188  DD70F9            LD      (IX-7),B
    149                  if((m&1)==1)h++;
   \   018B  CB40              BIT     0,B
   \   018D  FD23              INC     IY
   \   018F  2808              JR      Z,?0068
   \   0191            ?0038:
   \   0191  DD34F6            INC     (IX-10)
   \   0194  2003              JR      NZ,?0068
   \   0196  DD34F7            INC     (IX-9)
   \   0199            ?0068:
   \   0199            ?0039:
    150                  if((k-1)==n)
   \   0199  21FFFF            LD      HL,65535
   \   019C  FDE5              PUSH    IY
   \   019E  C1                POP     BC
   \   019F  09                ADD     HL,BC
   \   01A0  DD4EFE            LD      C,(IX-2)
   \   01A3  DD46FF            LD      B,(IX-1)
   \   01A6  A7                AND     A
   \   01A7  ED42              SBC     HL,BC
   \   01A9  284C              JR      Z,?0034
   \   01AB            ?0040:
    151                  break;
   \   01AB            ?0041:
    152                  for(j=0;j<7;j++)
   \   01AB  DD36FA00          LD      (IX-6),0
   \   01AF            ?0043:
   \   01AF  DD7EFA            LD      A,(IX-6)
   \   01B2  FE07              CP      7
   \   01B4  3036              JR      NC,?0042
   \   01B6            ?0044:
    153                  {
    154                      k++;
    155                      m=m/2;
   \   01B6  210300            LD      HL,3
   \   01B9  39                ADD     HL,SP
   \   01BA  0602              LD      B,2
   \   01BC  7E                LD      A,(HL)
   \   01BD  CD0000            CALL    LWRD ?UC_DIV_L01
   \   01C0  77                LD      (HL),A
    156                      if((m&1)==1)h++;
   \   01C1  CB47              BIT     0,A
   \   01C3  FD23              INC     IY
   \   01C5  2808              JR      Z,?0069
   \   01C7            ?0046:
   \   01C7  DD34F6            INC     (IX-10)
   \   01CA  2003              JR      NZ,?0069
   \   01CC  DD34F7            INC     (IX-9)
   \   01CF            ?0069:
   \   01CF            ?0047:
    157                      if((k-1)==n)
   \   01CF  21FFFF            LD      HL,65535
   \   01D2  FDE5              PUSH    IY
   \   01D4  C1                POP     BC
   \   01D5  09                ADD     HL,BC
   \   01D6  DD4EFE            LD      C,(IX-2)
   \   01D9  DD46FF            LD      B,(IX-1)
   \   01DC  A7                AND     A
   \   01DD  ED42              SBC     HL,BC
   \   01DF  2006              JR      NZ,?0049
   \   01E1            ?0048:
    158                      {
    159                  needbreak=1;
   \   01E1  DD36FB01          LD      (IX-5),1
    160                  break;
   \   01E5  1805              JR      ?0042
   \   01E7            ?0049:
   \   01E7  DD34FA            INC     (IX-6)
   \   01EA  18C3              JR      ?0043
   \   01EC            ?0042:
    161                      }
    162          
    163                  }
    164                  if(needbreak)
   \   01EC  AF                XOR     A
   \   01ED  DDB6FB            OR      (IX-5)
   \   01F0  2005              JR      NZ,?0034
   \   01F2            ?0050:
    165                      break;
   \   01F2            ?0051:
   \   01F2  DD34F8            INC     (IX-8)
   \   01F5  1882              JR      ?0035
   \   01F7            ?0034:
    166              }
    167              
    168              output8(0x05, status); 
   \   01F7  DD7EFC            LD      A,(IX-4)
   \   01FA  D305              OUT     (5),A
    169              return h;                       
   \   01FC  DD6EF6            LD      L,(IX-10)
   \   01FF  DD66F7            LD      H,(IX-9)
    170          } 
   \   0202            ?0052:
   \   0202  C33301            JP      LWRD ?0029
   \   0205            count_dir_num:
    171            
    172          /*
    173          ********************************************************************************
    174          * Description : 当前目录下,有效的子目录的总数
    175          *
    176          * Arguments   :
    177          *
    178          * Returns     : 子目录总数
    179          *
    180          * Notes       :  
    181          *        
    182          ********************************************************************************
    183          */
    184          WORD count_dir_num(void)
    185          { 
   \   0205  C5                PUSH    BC
   \   0206  D5                PUSH    DE
   \   0207  FDE5              PUSH    IY
   \   0209  DDE5              PUSH    IX
   \   020B  21F2FF            LD      HL,65522
   \   020E  39                ADD     HL,SP
   \   020F  F9                LD      SP,HL
    186              WORD tmp,wtemp,total,direxist;
    187              char strDir[12];    
    188              tmp = 0; 
    189              wtemp = 1;
   \   0210  FD210000          LD      IY,0
   \   0214  DD210100          LD      IX,1
   \   0218            ?0054:
    190              while(1) 
    191              {
    192                  if (! ToDirEntry(strDir, wtemp))
   \   0218  DDE5              PUSH    IX
   \   021A  C1                POP     BC
   \   021B  210200            LD      HL,2
   \   021E  39                ADD     HL,SP
   \   021F  EB                EX      DE,HL
   \   0220  3E00              LD      A,BYTE3 ToDirEntry
   \   0222  210000            LD      HL,LWRD ToDirEntry
   \   0225  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0228  2C                INC     L
   \   0229  2D                DEC     L
   \   022A  2013              JR      NZ,?0057
   \   022C            ?0056:
    193                  {
    194                      return tmp;
   \   022C  FDE5              PUSH    IY
   \   022E  E1                POP     HL
    195                  }
   \   022F  EB                EX      DE,HL
   \   0230  210E00            LD      HL,14
   \   0233  39                ADD     HL,SP
   \   0234  F9                LD      SP,HL
   \   0235  EB                EX      DE,HL
   \   0236  DDE1              POP     IX
   \   0238  FDE1              POP     IY
   \   023A  D1                POP     DE
   \   023B  C1                POP     BC
   \   023C  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   023F            ?0057:
    196                  else
    197                  {
    198                      // 只检查文件夹是否有效
    199                      total = GetFileTotal(strDir, TRUE);
   \   023F  210000            LD      HL,0
   \   0242  39                ADD     HL,SP
   \   0243  E5                PUSH    HL
   \   0244  0E01              LD      C,1
   \   0246  23                INC     HL
   \   0247  23                INC     HL
   \   0248  EB                EX      DE,HL
   \   0249  3E00              LD      A,BYTE3 GetFileTotal
   \   024B  210000            LD      HL,LWRD GetFileTotal
   \   024E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0251  4D                LD      C,L
   \   0252  44                LD      B,H
   \   0253  E1                POP     HL
   \   0254  71                LD      (HL),C
   \   0255  23                INC     HL
   \   0256  70                LD      (HL),B
    200                      FS_CD(strDir);
   \   0257  210200            LD      HL,2
   \   025A  39                ADD     HL,SP
   \   025B  EB                EX      DE,HL
   \   025C  CD0000            CALL    LWRD FS_CD
    201                      if (ToDirEntry(strDir,1))
   \   025F  010100            LD      BC,1
   \   0262  210200            LD      HL,2
   \   0265  39                ADD     HL,SP
   \   0266  EB                EX      DE,HL
   \   0267  3E00              LD      A,BYTE3 ToDirEntry
   \   0269  210000            LD      HL,LWRD ToDirEntry
   \   026C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   026F  2C                INC     L
   \   0270  2D                DEC     L
   \   0271  2805              JR      Z,?0059
   \   0273            ?0058:
    202                      {
    203                              direxist=1;
   \   0273  110100            LD      DE,1
    204                      }
    205                      else
   \   0276  1803              JR      ?0060
   \   0278            ?0059:
    206                      {
    207                          direxist=0;
   \   0278  110000            LD      DE,0
   \   027B            ?0060:
    208                      }        
    209                      output8(0x4e,input8(0x4e)|0x8);
   \   027B  DB4E              IN      A,(78)
   \   027D  CBDF              SET     3,A
   \   027F  D34E              OUT     (78),A
    210                  
    211                      FS_CD("\\"); 
   \   0281  D5                PUSH    DE
   \   0282  110000            LD      DE,?0061
   \   0285  CD0000            CALL    LWRD FS_CD
   \   0288  D1                POP     DE
    212                  }
    213                  output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08); 
   \   0289  DB4E              IN      A,(78)
   \   028B  CBDF              SET     3,A
   \   028D  D34E              OUT     (78),A
    214                  if((total != 0)||direxist)
   \   028F  210000            LD      HL,0
   \   0292  39                ADD     HL,SP
   \   0293  7E                LD      A,(HL)
   \   0294  23                INC     HL
   \   0295  B6                OR      (HL)
   \   0296  2004              JR      NZ,?0064
   \   0298  7B                LD      A,E
   \   0299  B2                OR      D
   \   029A  2802              JR      Z,?0063
   \   029C            ?0064:
   \   029C            ?0065:
   \   029C            ?0062:
    215                      tmp++;
   \   029C  FD23              INC     IY
   \   029E            ?0063:
    216          
    217                  wtemp ++;
    218               }
    219          }
   \   029E  DD23              INC     IX
   \   02A0  C31802            JP      LWRD ?0054
    220          
    221           
   \   0000                    RSEG    CSTR
   \   0000            ?0061:
   \   0000  5C00              DEFB    92,0
   \   0002                    END

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

⌨️ 快捷键说明

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