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

📄 userlist_add.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:58:59 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\userlist_add.c          #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\userlist_add.lst   #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\userlist_add.r01    #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\userlist_add.s01   #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K    #
#                        -w -gA -z9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_music\List\ -q -t8          #
#                        -AD:\case_i_d913f\ap\ap_music\List\                 #
#                        -ND:\case_i_d913f\ap\ap_music\List\ -X              #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        D:\CASE_I_D913F\AP\AP_MUSIC\userlist_add.c          #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    userlist_add(17)
   \   0000                    RSEG    APC_USERPL(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    APD_USERPL(0)
   \   0000                    PUBLIC  Add_UserPL
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FCreate
   \   0000                    EXTERN  FS_FOpen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FRemove
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  FS_FWrite
   \   0000                    EXTERN  FS_Init
   \   0000                    EXTERN  FirstOffset
   \   0000                    EXTERN  LastOffset
   \   0000                    EXTERN  PlaylistCount
   \   0000                    PUBLIC  Read_DataA
   \   0000                    PUBLIC  Reset_USERPL
   \   0000                    PUBLIC  WrHead_PL
   \   0000                    PUBLIC  buffer_list
   \   0000                    PUBLIC  check_playlist
   \   0000                    PUBLIC  file
   \   0000                    PUBLIC  fp
   \   0000                    EXTERN  g_TagInfoBuf
   \   0000                    EXTERN  need_WPL
   \   0000                    PUBLIC  save_offset
   \   0000                    PUBLIC  temp_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_LSH_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    EXTERN  ?MEMCMP_L11
   \   0000                    EXTERN  ?STRCMP_L11
   \   0000                    RSEG    APC_USERPL
   \   0000            Reset_USERPL:
      1          #include "ap_music.h"
      2          #ifdef ACTIVE_USERPL
      3          #pragma memory=dataseg(APD_USERPL)
      4          char buffer_list[512];
      5          char file[12];
      6          handle fp; 
      7          WORD save_offset;
      8          user_playlist_t temp_list;
      9          #pragma memory=default
     10          #pragma codeseg(APC_USERPL)
     11          
     12          void Reset_USERPL()
     13          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  FEFF              DEFW    65534
     14              
     15               
     16              char i;
     17              
     18              memset(file,0x20,12);
   \   0005  CDA200            CALL    LWRD ?0072
     19              file[0]='U';
     20              file[1]='S';
     21              file[2]='E';
     22              file[3]='R';
     23              file[4]='P';
     24              file[5]='L';
     25              file[8]='P';
     26              file[9]='L';
     27              file[11]=0;
     28              
     29              FirstOffset=0; //第一个偏移量
   \   0008  6C                LD      L,H
   \   0009  220000            LD      (FirstOffset),HL
     30              LastOffset=0;  //空族偏移量
   \   000C  220000            LD      (LastOffset),HL
     31              PlaylistCount=0; //Item总数
   \   000F  220000            LD      (PlaylistCount),HL
     32              if(FS_Init()) 
   \   0012  CD0000            CALL    LWRD FS_Init
   \   0015  B7                OR      A
   \   0016  CA9F00            JP      Z,?0003
   \   0019            ?0002:
     33                  {
     34                      FS_CD(FS_CD_ROOT);
   \   0019  CDDB00            CALL    LWRD ?0074
     35                      fp=FS_FOpen(file,0);
     36                      if(fp!=NULL)
   \   001C  2832              JR      Z,?0008
   \   001E            ?0005:
     37                      {
     38                          if(FS_FRead(buffer_list,1,fp))
   \   001E  E5                PUSH    HL
   \   001F  CDEF00            CALL    LWRD ?0075
   \   0022  E1                POP     HL
   \   0023  B7                OR      A
   \   0024  282A              JR      Z,?0008
   \   0026            ?0007:
     39                          {
     40                              if(memcmp(buffer_list,file,6)==0)
   \   0026  CDF700            CALL    LWRD ?0076
   \   0029  7D                LD      A,L
   \   002A  B4                OR      H
   \   002B  2020              JR      NZ,?0010
   \   002D            ?0009:
     41                              {
     42                                  memcpy(&FirstOffset,buffer_list+6,2);
   \   002D  0E02              LD      C,2
   \   002F  110000            LD      DE,FirstOffset
   \   0032  210600            LD      HL,buffer_list+6
   \   0035  EDB0              LDIR
     43                                  memcpy(&LastOffset,buffer_list+6+2,2);
   \   0037  03                INC     BC
   \   0038  03                INC     BC
   \   0039  110000            LD      DE,LastOffset
   \   003C  210800            LD      HL,buffer_list+8
   \   003F  EDB0              LDIR
     44                                  memcpy(&PlaylistCount,buffer_list+6+2+2,2);
   \   0041  03                INC     BC
   \   0042  03                INC     BC
   \   0043  110000            LD      DE,PlaylistCount
   \   0046  210A00            LD      HL,buffer_list+10
   \   0049  EDB0              LDIR
     45                                  FS_FClose(fp);
   \   004B  184F              JR      ?0013
     46                                  return ;
     47                              }
   \   004D            ?0010:
     48                                 FS_FClose(fp);
   \   004D  CD0301            CALL    LWRD ?0077
   \   0050            ?0008:
   \   0050            ?0006:
     49                          }
     50                      }
     51                      
     52                      FS_FRemove(file);
   \   0050  110002            LD      DE,file
   \   0053  CD0000            CALL    LWRD FS_FRemove
     53                      memset(buffer_list,0,512);
   \   0056  010002            LD      BC,512
   \   0059  110000            LD      DE,buffer_list
   \   005C  69                LD      L,C
   \   005D  CD0000            CALL    LWRD ?MEMSET_L11
     54                      memcpy(buffer_list,file,6);
   \   0060  010600            LD      BC,6
   \   0063  210002            LD      HL,file
   \   0066  EDB0              LDIR
     55                      fp=FS_FCreate(file);
   \   0068  110002            LD      DE,file
   \   006B  CD0000            CALL    LWRD FS_FCreate
   \   006E  220C02            LD      (fp),HL
     56                      if(fp==NULL)
   \   0071  7D                LD      A,L
   \   0072  B4                OR      H
   \   0073  282A              JR      Z,?0003
   \   0075            ?0011:
   \   0075            ?0012:
     57                         return ;   
     58                      FS_FWrite(buffer_list,1,fp);
   \   0075  E5                PUSH    HL
   \   0076  CD0A01            CALL    LWRD ?0078
   \   0079  E1                POP     HL
     59                      memset(buffer_list,0,512);
   \   007A  010002            LD      BC,512
   \   007D  110000            LD      DE,buffer_list
   \   0080  69                LD      L,C
   \   0081  61                LD      H,C
   \   0082  CD0000            CALL    LWRD ?MEMSET_L11
     60                      
     61                      for(i=0;i<USERPL_NUM/8+1;i++)
   \   0085  DD74FE            LD      (IX-2),H
   \   0088            ?0014:
   \   0088  DD7EFE            LD      A,(IX-2)
   \   008B  FE66              CP      102
   \   008D  300D              JR      NC,?0013
   \   008F            ?0015:
     62                          FS_FWrite(buffer_list,1,fp);
   \   008F  2A0C02            LD      HL,(fp)
   \   0092  E5                PUSH    HL
   \   0093  CD0A01            CALL    LWRD ?0078
   \   0096  E1                POP     HL
   \   0097  DD34FE            INC     (IX-2)
   \   009A  18EC              JR      ?0014
   \   009C            ?0013:
     63                         
     64                       
     65                      FS_FClose(fp);
   \   009C  CD0301            CALL    LWRD ?0077
   \   009F            ?0003:
     66                      
     67                  }
     68          }
   \   009F            ?0017:
   \   009F  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   00A2            ?0072:
   \   00A2  010C00            LD      BC,12
   \   00A5  110002            LD      DE,file
   \   00A8  212000            LD      HL,32
   \   00AB            ?0073:
   \   00AB  CD0000            CALL    LWRD ?MEMSET_L11
   \   00AE  3E55              LD      A,85
   \   00B0  320002            LD      (file),A
   \   00B3  3E53              LD      A,83
   \   00B5  320102            LD      (file+1),A
   \   00B8  3E45              LD      A,69
   \   00BA  320202            LD      (file+2),A
   \   00BD  3E52              LD      A,82
   \   00BF  320302            LD      (file+3),A
   \   00C2  3E50              LD      A,80
   \   00C4  320402            LD      (file+4),A
   \   00C7  3E4C              LD      A,76
   \   00C9  320502            LD      (file+5),A
   \   00CC  3E50              LD      A,80
   \   00CE  320802            LD      (file+8),A
   \   00D1  3E4C              LD      A,76
   \   00D3  320902            LD      (file+9),A
   \   00D6  AF                XOR     A
   \   00D7  320B02            LD      (file+11),A
   \   00DA  C9                RET
   \   00DB            ?0074:
   \   00DB  110000            LD      DE,?0004
   \   00DE  CD0000            CALL    LWRD FS_CD
   \   00E1  0E00              LD      C,0
   \   00E3  110002            LD      DE,file
   \   00E6  CD0000            CALL    LWRD FS_FOpen
   \   00E9  220C02            LD      (fp),HL
   \   00EC  7D                LD      A,L
   \   00ED  B4                OR      H
   \   00EE  C9                RET
   \   00EF            ?0075:
   \   00EF  0E01              LD      C,1
   \   00F1  110000            LD      DE,buffer_list
   \   00F4  C30000            JP      LWRD FS_FRead
   \   00F7            ?0076:
   \   00F7  010600            LD      BC,6
   \   00FA  110000            LD      DE,buffer_list
   \   00FD  210002            LD      HL,file
   \   0100  C30000            JP      LWRD ?MEMCMP_L11
   \   0103            ?0077:
   \   0103  ED5B0C02          LD      DE,(fp)
   \   0107  C30000            JP      LWRD FS_FClose
   \   010A            ?0078:
   \   010A  0E01              LD      C,1
   \   010C  110000            LD      DE,buffer_list
   \   010F  C30000            JP      LWRD FS_FWrite
   \   0112            Read_DataA:
     69          BOOL Read_DataA(WORD offset)
     70          {
   \   0112  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0115  FEFF              DEFW    65534
     71              char IO27;
     72              IO27 = input8(0x27);
   \   0117  DB27              IN      A,(39)
   \   0119  DD77FE            LD      (IX-2),A
     73              output8(0x27,00);
   \   011C  AF                XOR     A
   \   011D  D327              OUT     (39),A
     74              if(save_offset==0xffff)
   \   011F  2A0E02            LD      HL,(save_offset)
   \   0122  7D                LD      A,L
   \   0123  A4                AND     H
   \   0124  3C                INC     A
   \   0125  281F              JR      Z,?0066
   \   0127            ?0018:
     75              {
     76                  save_offset = offset/4;
     77              }
     78              else
   \   0127            ?0019:
     79              {
     80                  if(save_offset!=(offset/4))
   \   0127  DD6E02            LD      L,(IX+2)
   \   012A  DD6603            LD      H,(IX+3)
   \   012D  CB3C              SRL     H
   \   012F  CB1D              RR      L
   \   0131  CB3C              SRL     H
   \   0133  CB1D              RR      L
   \   0135  ED4B0E02          LD      BC,(save_offset)
   \   0139  A7                AND     A
   \   013A  ED42              SBC     HL,BC
   \   013C  2840              JR      Z,?0067
   \   013E            ?0021:
     81                  {
     82                      FS_FWrite(buffer_list,1,fp);
   \   013E  2A0C02            LD      HL,(fp)
   \   0141  E5                PUSH    HL
   \   0142  CD0A01            CALL    LWRD ?0078
   \   0145  E1                POP     HL
     83                      save_offset = offset/4;
   \   0146            ?0066:

⌨️ 快捷键说明

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