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

📄 main.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:34:52 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_playlist\main.c               #
#       List file     =  d:\case_i_d913f\ap\ap_playlist\.\list\main.lst      #
#       Object file   =  d:\case_i_d913f\ap\ap_playlist\.\obj\main.r01       #
#       ASM file      =  d:\case_i_d913f\ap\ap_playlist\.\list\main.s01      #
#       Command line  =  -v0 -mb -uu                                         #
#                        -OD:\case_i_d913f\ap\ap_playlist\.\Obj\ -e -K -w    #
#                        -gA -s9 -RCODE -r0 -DUSB_DISK_USING                 #
#                        -LD:\case_i_d913f\ap\ap_playlist\.\List\ -q -t8 -x  #
#                        -AD:\case_i_d913f\ap\ap_playlist\.\List\ -X         #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        -Id:\case_i_d913f\ap\ap_music\                      #
#                        d:\case_i_d913f\AP\AP_PLAYLIST\main.c               #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    main(17)
   \   0000                    RSEG    APC_LIST_FUN1(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    APD_LIST_FUN1(0)
   \   0000                    EXTERN  BankSwitch
   \   0000                    PUBLIC  CheckMusicType
   \   0000                    EXTERN  DRV_ActiveDrive
   \   0000                    EXTERN  DRV_ActiveUD
   \   0000                    EXTERN  DRV_DetectUD
   \   0000                    EXTERN  FS_FRemove
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  SetDspMips
   \   0000                    EXTERN  SortStoreListToFile
   \   0000                    PUBLIC  StoreID3toIDM
   \   0000                    EXTERN  VMRead
   \   0000                    EXTERN  VMWrite
   \   0000                    PUBLIC  delay1
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselGetNextFile
   \   0000                    EXTERN  fselInit
   \   0000                    PUBLIC  g_ID3InfoBuf
   \   0000                    PUBLIC  g_file_total
   \   0000                    PUBLIC  g_music_list_val
   \   0000                    PUBLIC  list_location
   \   0000                    PUBLIC  main
   \   0000                    EXTERN  mp3GetID3Info
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  wmaGetTAGInfo
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    EXTERN  ?STRCMP_L11
   \   0000                    RSEG    APC_LIST_FUN1
   \   0000            delay1:
      1          #include "musiclist.h" 
      2          #include "ap_music.h" 
      3          unsigned int g_file_total;  
      4          char g_ID3InfoBuf[90];          
      5          #pragma memory=dataseg(APD_LIST_FUN1)
      6          file_location_t list_location; 
      7          music_vars_t g_music_list_val;     
      8          #pragma memory=default   
      9           
     10          Music_type_t CheckMusicType( char * filename ); 
     11          void StoreID3toIDM( bool mode,unsigned int FileNum,file_location_t *location,int langid);  
     12          #pragma codeseg(APC_LIST_FUN1)    
     13          
     14          void delay1(void)
     15          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  DDE5              PUSH    IX
     16              int i,j=0;
     17              for(i=0;i<1000;i++) {;}
   \   0004  110000            LD      DE,0
   \   0007            ?0003:
   \   0007  01E883            LD      BC,33768
   \   000A  6B                LD      L,E
   \   000B  62                LD      H,D
   \   000C  3E80              LD      A,128
   \   000E  AC                XOR     H
   \   000F  67                LD      H,A
   \   0010  ED42              SBC     HL,BC
   \   0012  3003              JR      NC,?0002
   \   0014            ?0004:
   \   0014  13                INC     DE
   \   0015  18F0              JR      ?0003
   \   0017            ?0002:
     18                  j++;
     19          }
   \   0017  DDE1              POP     IX
   \   0019  D1                POP     DE
   \   001A  C1                POP     BC
   \   001B  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   001E            main:
     20           
     21          int main(int param)
     22          {
   \   001E  C5                PUSH    BC
   \   001F  FDE5              PUSH    IY
   \   0021  DDE5              PUSH    IX
   \   0023  DD210000          LD      IX,0
   \   0027  DD39              ADD     IX,SP
   \   0029  D5                PUSH    DE
   \   002A  21EAFF            LD      HL,65514
   \   002D  39                ADD     HL,SP
   \   002E  F9                LD      SP,HL
     23              int result;
     24              unsigned int file_num=0;      
     25              unsigned int file_total_flash=0; 
     26              unsigned int file_total_card=0;
     27              char *start_pointer = (char *)IDMStartAddress;         
   \   002F  DD36EC00          LD      (IX-20),0
   \   0033  DD36ED40          LD      (IX-19),64
     28              handle TempFileHandle;
     29              BYTE MusicType;
     30              ID3Info_t ID3List; 
     31              BYTE  FlashDiskState = 0;    //flash 磁盘状态
     32              BYTE  CardDiskState = 0; //插卡磁盘状态    
     33              BYTE  DiskType;              
     34          /*  
     35              BYTE  IO00Bak = input8(0x00);
     36              BYTE  IO70Bak = input8(0x70); 
     37          //////////////////////// MCU 48M
     38              output8(0x70, input8(0x70)&0xbf|0xb8);  //mcu pll enable & 48mhz
     39              delay1();
     40              output8(0x00, input8(0x00)&0xef|0x20);  //select mcu pll
     41              delay1();
     42          ///////////////////////        
     43          */  
     44              output8(0x4e,input8(0x4e)|0x08);
   \   0037  DB4E              IN      A,(78)
   \   0039  CBDF              SET     3,A
   \   003B  D34E              OUT     (78),A
     45              DRV_ActiveUD(0,MODE_SLOW);
   \   003D  0E01              LD      C,1
   \   003F  1E00              LD      E,0
   \   0041  CD0000            CALL    LWRD DRV_ActiveUD
     46              //装文件系统 //install file system
     47              if ( DRV_ActiveDrive('C',MODE_SLOW) )    //flash ok
   \   0044  FD210000          LD      IY,0
   \   0048  AF                XOR     A
   \   0049  DD77F0            LD      (IX-16),A
   \   004C  DD77F1            LD      (IX-15),A
   \   004F  DD77EE            LD      (IX-18),A
   \   0052  DD77EF            LD      (IX-17),A
   \   0055  DD77EA            LD      (IX-22),A
   \   0058  DD77E9            LD      (IX-23),A
   \   005B  0E01              LD      C,1
   \   005D  1E43              LD      E,67
   \   005F  CD0000            CALL    LWRD DRV_ActiveDrive
   \   0062  B7                OR      A
   \   0063  2804              JR      Z,?0007
   \   0065            ?0006:
     48              {
     49               FlashDiskState = 1;
   \   0065  DD36EA01          LD      (IX-22),1
   \   0069            ?0007:
     50              }
     51                     
     52              if (DRV_DetectUD(1) == 0x20)
   \   0069  1E01              LD      E,1
   \   006B  CD0000            CALL    LWRD DRV_DetectUD
   \   006E  FE20              CP      32
   \   0070  2014              JR      NZ,?0011
   \   0072            ?0008:
     53              { //有卡
     54                  DRV_ActiveUD(1,MODE_SLOW);
   \   0072  0E01              LD      C,1
   \   0074  59                LD      E,C
   \   0075  CD0000            CALL    LWRD DRV_ActiveUD
     55                  if (DRV_ActiveDrive('H', MODE_SLOW))    //card ok
   \   0078  0E01              LD      C,1
   \   007A  1E48              LD      E,72
   \   007C  CD0000            CALL    LWRD DRV_ActiveDrive
   \   007F  B7                OR      A
   \   0080  2804              JR      Z,?0011
   \   0082            ?0010:
     56                  {
     57                   CardDiskState = 1;
   \   0082  DD36E901          LD      (IX-23),1
   \   0086            ?0011:
   \   0086            ?0009:
     58                  }   
     59              }   
     60              if(FlashDiskState == 0 && CardDiskState == 0) //磁盘都错误就直接返回
   \   0086  AF                XOR     A
   \   0087  DDB6EA            OR      (IX-22)
   \   008A  200A              JR      NZ,?0013
   \   008C  DDB6E9            OR      (IX-23)
   \   008F  2005              JR      NZ,?0013
   \   0091            ?0015:
   \   0091            ?0014:
   \   0091            ?0012:
     61                 return 0;
   \   0091  6F                LD      L,A
   \   0092  67                LD      H,A
   \   0093  C35402            JP      LWRD ?0051
   \   0096            ?0013:
     62              else if(FlashDiskState ==1)                           
   \   0096  DD46EA            LD      B,(IX-22)
   \   0099  05                DEC     B
   \   009A  2006              JR      NZ,?0017
   \   009C            ?0016:
     63                 DiskType = 'C';                           
   \   009C  DD36E843          LD      (IX-24),67
     64              else 
   \   00A0  1804              JR      ?0018
   \   00A2            ?0017:
     65                 DiskType = 'H';
   \   00A2  DD36E848          LD      (IX-24),72
   \   00A6            ?0018:
     66                             
     67              output8(0x4e,input8(0x4e)|0x08);
   \   00A6  DB4E              IN      A,(78)
   \   00A8  CBDF              SET     3,A
   \   00AA  D34E              OUT     (78),A
   \   00AC            ?0019:
     68          //    while ( GetSysMsg() != NULL ) {};
     69              //安装ud驱动 //install ud driver
     70          //    res_fp = ResOpen("ui30.res");
     71          //    SetBackgdColor(Color_BLACK_def);
     72          //    SetPenColor(Color_WHITE_def);
     73               
     74          BuildAnotherList:  
     75           
     76              ID3List.TIT2_length = 30;
   \   00AC  DD36F21E          LD      (IX-14),30
     77              ID3List.TPE1_length = 30;
   \   00B0  DD36F51E          LD      (IX-11),30
     78              ID3List.TALB_length = 30;
   \   00B4  DD36F81E          LD      (IX-8),30
     79              ID3List.TENC_length = 0;
   \   00B8  DD36FB00          LD      (IX-5),0
     80              ID3List.TIT2_buffer = & g_ID3InfoBuf[0];   //标题
   \   00BC  DD36F300          LD      (IX-13),LOW(g_ID3InfoBuf)
   \   00C0  DD36F400          LD      (IX-12),HIGH(g_ID3InfoBuf)
     81              ID3List.TPE1_buffer = & g_ID3InfoBuf[30];  //艺术家 
   \   00C4  DD36F600          LD      (IX-10),LOW(g_ID3InfoBuf+30)
   \   00C8  DD36F700          LD      (IX-9),HIGH(g_ID3InfoBuf+30)
     82              ID3List.TALB_buffer = & g_ID3InfoBuf[60];  //专辑
   \   00CC  DD36F900          LD      (IX-7),LOW(g_ID3InfoBuf+60)
   \   00D0  DD36FA00          LD      (IX-6),HIGH(g_ID3InfoBuf+60)
     83              ID3List.TENC_buffer = & g_ID3InfoBuf[90];  
   \   00D4  DD36FC00          LD      (IX-4),LOW(g_ID3InfoBuf+90)
   \   00D8  DD36FD00          LD      (IX-3),HIGH(g_ID3InfoBuf+90)
     84              
     85              FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,DiskType);//初始化文件选择器  
   \   00DC  DD6EE8            LD      L,(IX-24)
   \   00DF  E5                PUSH    HL
   \   00E0  0E00              LD      C,0
   \   00E2  C5                PUSH    BC
   \   00E3  59                LD      E,C
   \   00E4  3E00              LD      A,BYTE3 fselInit
   \   00E6  210000            LD      HL,LWRD fselInit
   \   00E9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00EC  F1                POP     AF
   \   00ED  F1                POP     AF

⌨️ 快捷键说明

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