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

📄 sort_store_list.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:34:53 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_playlist\sort_store_list.c    #
#       List file     =  d:\case_i_d913f\ap\ap_playlist\.\list\sort_store_list.lst#
#       Object file   =  d:\case_i_d913f\ap\ap_playlist\.\obj\sort_store_list.r01#
#       ASM file      =  d:\case_i_d913f\ap\ap_playlist\.\list\sort_store_list.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\sort_store_list.c    #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sort_store_list(17)
   \   0000                    RSEG    APC_LIST_FUN2(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    APD_LIST_FUN2(0)
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FCreate
   \   0000                    EXTERN  FS_FWrite
   \   0000                    EXTERN  SetDspMips
   \   0000                    PUBLIC  SortStoreListToFile
   \   0000                    PUBLIC  StoreList
   \   0000                    PUBLIC  WriteVmData
   \   0000                    PUBLIC  WritrVMBuffer
   \   0000                    EXTERN  g_file_total
   \   0000                    EXTERN  list_sort
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?SS_MOD_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?C_S_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    RSEG    APC_LIST_FUN2
   \   0000            WriteVmData:
      1          #include "musiclist.h"                 
      2          extern unsigned int g_file_total;  
      3          #pragma memory=dataseg(APD_LIST_FUN2)   
      4          char  WritrVMBuffer[512];      
      5          #pragma memory=default
      6           
      7          #pragma codeseg(APC_LIST_FUN2)            
      8          
      9          void WriteVmData(char *DataAddress,int PageNum,handle listhandle,BYTE DataType)  
     10          {  
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  DD210000          LD      IX,0
   \   0008  DD39              ADD     IX,SP
   \   000A  C5                PUSH    BC
   \   000B  D5                PUSH    DE
   \   000C  21F0FF            LD      HL,65520
   \   000F  39                ADD     HL,SP
   \   0010  F9                LD      SP,HL
     11            unsigned int index_address;  
     12            unsigned int file_counter = 0;
     13            int i,j;         
     14            int *page_address = (int *)DataAddress ;    
   \   0011  DD73F4            LD      (IX-12),E
   \   0014  DD72F5            LD      (IX-11),D
     15            char *store_data =DataAddress+2; 
     16            char *store_location=DataAddress;  
     17            BYTE   IO05bak = input8(0x05);  
   \   0017  DB05              IN      A,(5)
   \   0019  DD77FA            LD      (IX-6),A
     18            for(i=0;i<PageNum;i++)
   \   001C  AF                XOR     A
   \   001D  DD77EE            LD      (IX-18),A
   \   0020  DD77EF            LD      (IX-17),A
   \   0023  DD77F0            LD      (IX-16),A
   \   0026  DD77F1            LD      (IX-15),A
   \   0029            ?0003:
   \   0029  DD4EFE            LD      C,(IX-2)
   \   002C  DD46FF            LD      B,(IX-1)
   \   002F  DD6EF0            LD      L,(IX-16)
   \   0032  DD66F1            LD      H,(IX-15)
   \   0035  F680              OR      128
   \   0037  ED42              SBC     HL,BC
   \   0039  E23D00            JP      PO,?0044
   \   003C  AC                XOR     H
   \   003D            ?0044:
   \   003D  F27301            JP      P,?0002
   \   0040            ?0004:
     19             {
     20              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);    
   \   0040  DB4E              IN      A,(78)
   \   0042  CBDF              SET     3,A
   \   0044  D34E              OUT     (78),A
     21              switch(DataType) 
   \   0046  DD5E0A            LD      E,(IX+10)
   \   0049  CD0000            CALL    LWRD ?C_S_SWITCH_L06
   \   004C  00                DEFB    0
   \   004D  0400              DEFW    4
   \   004F  6900              DEFW    ?0006
   \   0051  5900              DEFW    ?0007
   \   0053  5D00              DEFW    ?0008
   \   0055  6100              DEFW    ?0009
   \   0057  6500              DEFW    ?0010
   \   0059            ?0007:
     22              {                                                                                                                                                                  
     23               case 0:
     24               output8(0x05,0x34);
   \   0059  3E34              LD      A,52
   \   005B  180A              JR      ?0049
     25               break;
   \   005D            ?0008:
     26               case 1:
     27               output8(0x05,0x35);
   \   005D  3E35              LD      A,53
   \   005F  1806              JR      ?0049
     28               break;
   \   0061            ?0009:
     29               case 2:
     30               output8(0x05,0x36);
   \   0061  3E36              LD      A,54
   \   0063  1802              JR      ?0049
     31               break;     
   \   0065            ?0010:
     32               case 3:
     33               output8(0x05,0xc0);
   \   0065  3EC0              LD      A,192
   \   0067            ?0049:
   \   0067  D305              OUT     (5),A
     34               break;
   \   0069            ?0011:
     35               default:
     36               break;
   \   0069            ?0006:
     37              } 
     38          //    index_address = *page_address; 
     39              for(j=0;j<Pagelist;j++)              //每个扇区存储7个文件信息
   \   0069  FD210000          LD      IY,0
   \   006D            ?0013:
   \   006D  010780            LD      BC,32775
   \   0070  FDE5              PUSH    IY
   \   0072  E1                POP     HL
   \   0073  78                LD      A,B
   \   0074  AC                XOR     H
   \   0075  67                LD      H,A
   \   0076  ED42              SBC     HL,BC
   \   0078  D24C01            JP      NC,?0012
   \   007B            ?0014:
     40              {
     41                 index_address = *page_address;
   \   007B  DD6EF4            LD      L,(IX-12)
   \   007E  DD66F5            LD      H,(IX-11)
   \   0081  46                LD      B,(HL)
   \   0082  23                INC     HL
   \   0083  66                LD      H,(HL)
   \   0084  68                LD      L,B
   \   0085  DD75EC            LD      (IX-20),L
   \   0088  DD74ED            LD      (IX-19),H
     42                 store_data = (char *)(index_address*OneFileInfor+IDMStartAddress+2);
   \   008B  29                ADD     HL,HL
   \   008C  29                ADD     HL,HL
   \   008D  29                ADD     HL,HL
   \   008E  29                ADD     HL,HL
   \   008F  29                ADD     HL,HL
   \   0090  010240            LD      BC,16386
   \   0093  09                ADD     HL,BC
   \   0094  DD75F6            LD      (IX-10),L
   \   0097  DD74F7            LD      (IX-9),H
     43                 memcpy(&WritrVMBuffer[j*71],store_data,OneFileInfor-2);
   \   009A  114700            LD      DE,71
   \   009D  FDE5              PUSH    IY
   \   009F  C1                POP     BC
   \   00A0  CD0000            CALL    LWRD ?S_MUL_L02
   \   00A3  210000            LD      HL,WritrVMBuffer
   \   00A6  19                ADD     HL,DE
   \   00A7  EB                EX      DE,HL
   \   00A8  DD6EF6            LD      L,(IX-10)
   \   00AB  DD66F7            LD      H,(IX-9)
   \   00AE  011E00            LD      BC,30
   \   00B1  EDB0              LDIR
     44                 page_address+=OneFileInfor/2;  //  page_address  为int 型指针 所以要除2
   \   00B3  210800            LD      HL,8
   \   00B6  39                ADD     HL,SP
   \   00B7  7E                LD      A,(HL)
   \   00B8  C620              ADD     A,32
   \   00BA  77                LD      (HL),A
   \   00BB  23                INC     HL
   \   00BC  7E                LD      A,(HL)
   \   00BD  CE00              ADC     A,0
   \   00BF  77                LD      (HL),A
     45          //     存location    
     46                 {
     47                  char BakIO05 = input8(0x05);
   \   00C0  DB05              IN      A,(5)
   \   00C2  DD77FB            LD      (IX-5),A
     48                  if(index_address<399) 
   \   00C5  018F01            LD      BC,399
   \   00C8  DD6EEC            LD      L,(IX-20)
   \   00CB  DD66ED            LD      H,(IX-19)
   \   00CE  A7                AND     A
   \   00CF  ED42              SBC     HL,BC
   \   00D1  300F              JR      NC,?0017
   \   00D3            ?0016:
     49                  {        
     50                   output8(0x05,0xc1);                                                                            
   \   00D3  3EC1              LD      A,193
   \   00D5  D305              OUT     (5),A
     51                   store_location =(char *)DataAddress + index_address*OneLocationBYTE;                 
   \   00D7  012900            LD      BC,41
   \   00DA  DD5EEC            LD      E,(IX-20)
   \   00DD  DD56ED            LD      D,(IX-19)
   \   00E0  1813              JR      ?0050
     52                  }                                                                       
     53                  else
   \   00E2            ?0017:
     54                  {
     55                   output8(0x05,0xc2);
   \   00E2  3EC2              LD      A,194
   \   00E4  D305              OUT     (5),A
     56                   store_location =(char *)DataAddress + (index_address-399)*OneLocationBYTE;       

⌨️ 快捷键说明

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