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

📄 main.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
     86               
     87              FS_FRemove(TIT2FileName);    //删除原来列表 
   \   00EE  110000            LD      DE,?0020
   \   00F1  CD0000            CALL    LWRD FS_FRemove
     88              FS_FRemove(TPE1FileName);    //删除原来列表 
   \   00F4  110C00            LD      DE,?0021
   \   00F7  CD0000            CALL    LWRD FS_FRemove
     89              FS_FRemove(TALBFileName);    //删除原来列表 
   \   00FA  111800            LD      DE,?0022
   \   00FD  CD0000            CALL    LWRD FS_FRemove
     90              FS_FRemove(FILENAMELSIT);    //删除原来列表  
   \   0100  112400            LD      DE,?0023
   \   0103  CD0000            CALL    LWRD FS_FRemove
   \   0106            ?0025:
     91                          
     92          //    TIT2FileHandle = FS_FCreate(TIT2FileName);  //因为TIT2FileHandle用到IDM LOW, FS_FCreate 会用到IDM LOW 作为buf,所以先创建
     93                         
     94              while(FSELGetNext(list_location.filename))  //找到文件
   \   0106  111A00            LD      DE,list_location+26
   \   0109  3E00              LD      A,BYTE3 fselGetNextFile
   \   010B  210000            LD      HL,LWRD fselGetNextFile
   \   010E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0111  2C                INC     L
   \   0112  2D                DEC     L
   \   0113  CACE01            JP      Z,?0024
   \   0116            ?0026:
     95             {
     96                   output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);   
   \   0116  DB4E              IN      A,(78)
   \   0118  CBDF              SET     3,A
   \   011A  D34E              OUT     (78),A
     97                   fselGetLocation(&list_location);
   \   011C  110000            LD      DE,list_location
   \   011F  3E00              LD      A,BYTE3 fselGetLocation
   \   0121  210000            LD      HL,LWRD fselGetLocation
   \   0124  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     98                   MusicType = CheckMusicType(list_location.filename);     
   \   0127  111A00            LD      DE,list_location+26
   \   012A  3E00              LD      A,BYTE3 CheckMusicType
   \   012C  210904            LD      HL,LWRD CheckMusicType
   \   012F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     99                switch (MusicType)
   \   0132  7D                LD      A,L
   \   0133  FE02              CP      2
   \   0135  3842              JR      C,?0032
   \   0137  FE05              CP      5
   \   0139  303E              JR      NC,?0032
   \   013B            ?0028:
    100                 {
    101                 case  Music_WMA:       //WMA 的ID3 信息
    102                 case  Music_WMV:
    103                 case  Music_ASF:     
    104                  if (wmaGetTAGInfo(list_location.filename, &ID3List))
   \   013B  210A00            LD      HL,10
   \   013E  39                ADD     HL,SP
   \   013F  4D                LD      C,L
   \   0140  44                LD      B,H
   \   0141  111A00            LD      DE,list_location+26
   \   0144  3E00              LD      A,BYTE3 wmaGetTAGInfo
   \   0146  210000            LD      HL,LWRD wmaGetTAGInfo
   \   0149  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   014C  2C                INC     L
   \   014D  2D                DEC     L
   \   014E  284A              JR      Z,?0036
   \   0150            ?0029:
    105                  {
    106                      unitochar(g_ID3InfoBuf, 30, (char)param);    //WMA Tag(unicode) change to ASCII & GB2312 
   \   0150  DD6EFE            LD      L,(IX-2)
   \   0153  E5                PUSH    HL
   \   0154  011E00            LD      BC,30
   \   0157  CD5E02            CALL    LWRD ?0102
   \   015A  F1                POP     AF
    107                      unitochar(&g_ID3InfoBuf[30], 30, (char)param);   
   \   015B  DD6EFE            LD      L,(IX-2)
   \   015E  E5                PUSH    HL
   \   015F  011E00            LD      BC,30
   \   0162  112000            LD      DE,g_ID3InfoBuf+30
   \   0165  CD6102            CALL    LWRD ?0103
   \   0168  F1                POP     AF
    108                      unitochar(&g_ID3InfoBuf[60], 30, (char)param);             
   \   0169  DD6EFE            LD      L,(IX-2)
   \   016C  E5                PUSH    HL
   \   016D  011E00            LD      BC,30
   \   0170  113E00            LD      DE,g_ID3InfoBuf+60
   \   0173  CD6102            CALL    LWRD ?0103
   \   0176  F1                POP     AF
    109                  }
    110                  else
   \   0177  1825              JR      ?0027
   \   0179            ?0030:
    111                  {
    112                      g_ID3InfoBuf[0] = 0x0;
   \   0179            ?0031:
    113                  }
    114                 break;
   \   0179            ?0032:
   \   0179  FE01              CP      1
   \   017B  201D              JR      NZ,?0036
    115          
    116              case  Music_MP3:
    117                  if (mp3GetID3Info(list_location.filename, & ID3List, param))
   \   017D  DD6EFE            LD      L,(IX-2)
   \   0180  DD66FF            LD      H,(IX-1)
   \   0183  E5                PUSH    HL
   \   0184  210C00            LD      HL,12
   \   0187  39                ADD     HL,SP
   \   0188  4D                LD      C,L
   \   0189  44                LD      B,H
   \   018A  111A00            LD      DE,list_location+26
   \   018D  3E00              LD      A,BYTE3 mp3GetID3Info
   \   018F  210000            LD      HL,LWRD mp3GetID3Info
   \   0192  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0195  F1                POP     AF
   \   0196  2C                INC     L
   \   0197  2D                DEC     L
   \   0198  2004              JR      NZ,?0027
   \   019A            ?0033:
    118                  {
    119          //            strcpy(g_ID3InfoBuf, & g_ID3InfoBuf[0]);
    120          //            strcat(g_ID3InfoBuf, " ");
    121          //            strcat(g_ID3InfoBuf, & g_ID3InfoBuf[30]);
    122          //            strcat(g_ID3InfoBuf, " ");
    123          //            strcat(g_ID3InfoBuf, & g_ID3InfoBuf[60]);
    124          //            strcat(g_ID3InfoBuf, " ");
    125                  }
    126          
    127                 else
   \   019A            ?0034:
    128                  {
    129                      g_ID3InfoBuf[0] = 0x0;
   \   019A            ?0035:
    130                  }
    131                      break;
   \   019A            ?0036:
    132          
    133              default:
    134                  g_ID3InfoBuf[0] = 0x0;        
   \   019A  AF                XOR     A
   \   019B  320200            LD      (g_ID3InfoBuf),A
    135                  break;
   \   019E            ?0027:
    136              }
    137                  
    138               if(file_num>480)     //超出范围    15K 0x7c00-0x7fff IDM low 被文件系统用掉
   \   019E  FDE5              PUSH    IY
   \   01A0  C1                POP     BC
   \   01A1  21E001            LD      HL,480
   \   01A4  A7                AND     A
   \   01A5  ED42              SBC     HL,BC
   \   01A7  3825              JR      C,?0024
   \   01A9            ?0037:
    139               break;
   \   01A9            ?0038:
    140                     
    141               if(g_ID3InfoBuf[0])
   \   01A9  3A0200            LD      A,(g_ID3InfoBuf)
   \   01AC  B7                OR      A
   \   01AD  DD6EFE            LD      L,(IX-2)
   \   01B0  DD66FF            LD      H,(IX-1)
   \   01B3  E5                PUSH    HL
   \   01B4  210000            LD      HL,list_location
   \   01B7  E5                PUSH    HL
   \   01B8  2804              JR      Z,?0040
   \   01BA            ?0039:
    142               StoreID3toIDM(1,file_num,&list_location,param);
   \   01BA  1E01              LD      E,1
   \   01BC  1801              JR      ?0099
    143               else
   \   01BE            ?0040:
    144               StoreID3toIDM(0,file_num,&list_location,param);    
   \   01BE  5F                LD      E,A
   \   01BF            ?0099:
   \   01BF  3E00              LD      A,BYTE3 StoreID3toIDM
   \   01C1  216902            LD      HL,LWRD StoreID3toIDM
   \   01C4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01C7  E1                POP     HL
   \   01C8  E1                POP     HL
   \   01C9            ?0041:
    145               file_num++;                     
   \   01C9  FD23              INC     IY
   \   01CB  C30601            JP      LWRD ?0025
   \   01CE            ?0024:
    146            }   //while 循环                                              
    147             g_file_total=file_num;                   //记录总的文件个数          
   \   01CE  FD220000          LD      (g_file_total),IY
    148             BankSwitch((unsigned long)SortStoreListToFile >> 16);  //将排序存文件部分切为主bank                 
   \   01D2  1E00              LD      E,BYTE3 SortStoreListToFile
   \   01D4  CD0000            CALL    LWRD BankSwitch
    149             if(file_num!=0)                                      //没有文件就不生成列表
   \   01D7  FD7D              LD      A,IYL
   \   01D9  FDB4              OR      IYH
   \   01DB  2811              JR      Z,?0043
   \   01DD            ?0042:
    150               SortStoreListToFile(start_pointer,file_num);          //按关键字排序并将排序后的列表写到列表文件   
   \   01DD  FDE5              PUSH    IY
   \   01DF  C1                POP     BC
   \   01E0  DD5EEC            LD      E,(IX-20)
   \   01E3  DD56ED            LD      D,(IX-19)
   \   01E6  3E00              LD      A,BYTE3 SortStoreListToFile
   \   01E8  210000            LD      HL,LWRD SortStoreListToFile
   \   01EB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01EE            ?0043:
    151             if(DiskType =='C')                                //保存Flash 中列表文件的个数
   \   01EE  DD7EE8            LD      A,(IX-24)
   \   01F1  FE43              CP      67
   \   01F3  FDE5              PUSH    IY
   \   01F5  E1                POP     HL
   \   01F6  2008              JR      NZ,?0045
   \   01F8            ?0044:
    152               file_total_flash = file_num;
   \   01F8  DD75F0            LD      (IX-16),L
   \   01FB  DD74F1            LD      (IX-15),H
    153             else                                             
   \   01FE  1806              JR      ?0046
   \   0200            ?0045:
    154               file_total_card = file_num;                    //保存插卡中列表文件个数
   \   0200  DD75EE            LD      (IX-18),L
   \   0203  DD74EF            LD      (IX-17),H
   \   0206            ?0046:
    155                     
    156             if(DiskType =='C' && CardDiskState ==1)
   \   0206  FE43              CP      67
   \   0208  2018              JR      NZ,?0048
   \   020A  DD46E9            LD      B,(IX-23)
   \   020D  05                DEC     B
   \   020E  2012              JR      NZ,?0048
   \   0210            ?0050:
   \   0210            ?0049:
   \   0210            ?0047:
    157             {   
    158              file_num = 0;  
    159              DiskType = 'H';       
    160              start_pointer = (char *)IDMStartAddress;  //指针重新赋值 
   \   0210  DD70EC            LD      (IX-20),B
   \   0213  DD36ED40          LD      (IX-19),64
   \   0217  FD210000          LD      IY,0
   \   021B  DD36E848          LD      (IX-24),72
    161              goto  BuildAnotherList;
   \   021F  C3AC00            JP      LWRD ?0019
   \   0222            ?0048:
    162             } 
    163             
    164              VMRead(&g_music_list_val, VM_AP_MUSIC,sizeof(g_music_list_val)); //将播放列表数据写到VM
   \   0222  215F00            LD      HL,95
   \   0225  E5                PUSH    HL
   \   0226  010010            LD      BC,4096
   \   0229  112B00            LD      DE,g_music_list_val
   \   022C  CD0000            CALL    LWRD VMRead
   \   022F  E1                POP     HL
    165              g_music_list_val.file_list_total_flash = file_total_flash;       
   \   0230  DD6EF0            LD      L,(IX-16)
   \   0233  DD66F1            LD      H,(IX-15)
   \   0236  228100            LD      (g_music_list_val+86),HL
    166              g_music_list_val.file_list_total_card = file_total_card;       
   \   0239  DD6EEE            LD      L,(IX-18)
   \   023C  DD66EF            LD      H,(IX-17)
   \   023F  228300            LD      (g_music_list_val+88),HL
    167              g_music_list_val.file_list_num = 0;                           //将原来播放序号清0               
   \   0242  210000            LD      HL,0
   \   0245  228500            LD      (g_music_list_val+90),HL
    168              VMWrite(& g_music_list_val, VM_AP_MUSIC);       
   \   0248  010010            LD      BC,4096
   \   024B  112B00            LD      DE,g_music_list_val
   \   024E  CD0000            CALL    LWRD VMWrite
    169          /* 
    170             output8(0x00,IO00Bak);

⌨️ 快捷键说明

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