userlist_del.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 527 行 · 第 1/2 页

LST
527
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:59:05 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\userlist_del.c          #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\userlist_del.lst   #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\userlist_del.r01    #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\userlist_del.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_del.c          #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    userlist_del(17)
   \   0000                    RSEG    APC_USERPL_DEL(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    APD_USERPL_DEL(0)
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FOpen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  FS_FWrite
   \   0000                    EXTERN  FirstOffset
   \   0000                    EXTERN  LastOffset
   \   0000                    EXTERN  PlaylistCount
   \   0000                    PUBLIC  Read_Data
   \   0000                    PUBLIC  buff
   \   0000                    PUBLIC  fileA
   \   0000                    PUBLIC  fp1
   \   0000                    EXTERN  need_WPL
   \   0000                    PUBLIC  pl_list
   \   0000                    PUBLIC  save_offset1
   \   0000                    PUBLIC  user_pl_del
   \   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                    RSEG    APC_USERPL_DEL
   \   0000            Read_Data:
      1          #include "ap_music.h"
      2          #ifdef ACTIVE_USERPL                                                                                                                                
      3          #pragma memory=dataseg(APD_USERPL_DEL)
      4          char buff[512];
      5          char fileA[12];
      6          user_playlist_t pl_list; 
      7          WORD save_offset1;
      8          handle fp1;
      9          #pragma memory=default
     10          #pragma codeseg(APC_USERPL_DEL)
     11          BOOL Read_Data(WORD offset)
     12          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  FEFF              DEFW    65534
     13              char IO27;
     14              IO27 = input8(0x27);
   \   0005  DB27              IN      A,(39)
   \   0007  DD77FE            LD      (IX-2),A
     15              output8(0x27,00);
   \   000A  AF                XOR     A
   \   000B  D327              OUT     (39),A
     16              if(save_offset1==0xffff)
   \   000D  2A3702            LD      HL,(save_offset1)
   \   0010  7D                LD      A,L
   \   0011  A4                AND     H
   \   0012  3C                INC     A
   \   0013  2824              JR      Z,?0031
   \   0015            ?0002:
     17              {
     18                  save_offset1 = offset/4;
     19              }
     20              else
   \   0015            ?0003:
     21              {
     22                  if(save_offset1!=(offset/4))
   \   0015  DD6E02            LD      L,(IX+2)
   \   0018  DD6603            LD      H,(IX+3)
   \   001B  CB3C              SRL     H
   \   001D  CB1D              RR      L
   \   001F  CB3C              SRL     H
   \   0021  CB1D              RR      L
   \   0023  ED4B3702          LD      BC,(save_offset1)
   \   0027  A7                AND     A
   \   0028  ED42              SBC     HL,BC
   \   002A  284A              JR      Z,?0032
   \   002C            ?0005:
     23                  {
     24                      FS_FWrite(buff,1,fp1);
   \   002C  2A3902            LD      HL,(fp1)
   \   002F  E5                PUSH    HL
   \   0030  0E01              LD      C,1
   \   0032  110000            LD      DE,buff
   \   0035  CD0000            CALL    LWRD FS_FWrite
   \   0038  E1                POP     HL
     25                      save_offset1 = offset/4;
   \   0039            ?0031:
   \   0039  DD6E02            LD      L,(IX+2)
   \   003C  DD6603            LD      H,(IX+3)
   \   003F  CB3C              SRL     H
   \   0041  CB1D              RR      L
   \   0043  CB3C              SRL     H
   \   0045  CB1D              RR      L
   \   0047  223702            LD      (save_offset1),HL
     26                  }
     27                  else
   \   004A            ?0006:
     28                  {
     29                     output8(0x27,IO27);
     30                     return TRUE;
     31                  }
   \   004A            ?0007:
   \   004A            ?0004:
     32              }
     33              if(FS_FSeek(1+offset/4,FS_SEEK_FFROMSTART,fp1))
   \   004A  2A3902            LD      HL,(fp1)
   \   004D  E5                PUSH    HL
   \   004E  0E00              LD      C,0
   \   0050  C5                PUSH    BC
   \   0051  DD5E02            LD      E,(IX+2)
   \   0054  DD5603            LD      D,(IX+3)
   \   0057  CB3A              SRL     D
   \   0059  CB1B              RR      E
   \   005B  CB3A              SRL     D
   \   005D  CB1B              RR      E
   \   005F  13                INC     DE
   \   0060  41                LD      B,C
   \   0061  CD0000            CALL    LWRD FS_FSeek
   \   0064  E1                POP     HL
   \   0065  E1                POP     HL
   \   0066  B7                OR      A
   \   0067  2816              JR      Z,?0009
   \   0069            ?0008:
     34                  {
     35                     FS_FRead(buff,1,fp1);
   \   0069  2A3902            LD      HL,(fp1)
   \   006C  E5                PUSH    HL
   \   006D  0E01              LD      C,1
   \   006F  110000            LD      DE,buff
   \   0072  CD0000            CALL    LWRD FS_FRead
   \   0075  E1                POP     HL
     36                     output8(0x27,IO27);
   \   0076            ?0032:
   \   0076  DD7EFE            LD      A,(IX-2)
   \   0079  D327              OUT     (39),A
     37                     return TRUE;
   \   007B  2E01              LD      L,1
     38                  }
   \   007D  1807              JR      ?0010
   \   007F            ?0009:
     39                  else
     40                  {
     41                     output8(0x27,IO27);
   \   007F  DD7EFE            LD      A,(IX-2)
   \   0082  D327              OUT     (39),A
     42                     return FALSE;
   \   0084  2E00              LD      L,0
     43                  }
   \   0086            ?0010:
   \   0086  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
     44          }
   \   0089            user_pl_del:
     45          
     46          BOOL user_pl_del(WORD offset)
     47          {
   \   0089  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   008C  FAFF              DEFW    -6
   \   008E  FDE5              PUSH    IY
     48              WORD next;
     49              WORD prev;
     50              WORD FreeList;
     51          //    char Backbuf[32];
     52              char IO27 = input8(0x27);   
   \   0090  DB27              IN      A,(39)
   \   0092  DD77FE            LD      (IX-2),A
     53              if(PlaylistCount==0)
   \   0095  2A0000            LD      HL,(PlaylistCount)
   \   0098  7D                LD      A,L
   \   0099  B4                OR      H
   \   009A  2859              JR      Z,?0036
   \   009C            ?0011:
     54                 return FALSE;
   \   009C            ?0012:
     55              need_WPL=TRUE;
   \   009C  3E01              LD      A,1
   \   009E  320000            LD      (need_WPL),A
     56              memset(fileA,0x20,12);
   \   00A1  010C00            LD      BC,12
   \   00A4  110002            LD      DE,fileA
   \   00A7  212000            LD      HL,32
   \   00AA  CD0000            CALL    LWRD ?MEMSET_L11
     57              fileA[0]='U';
   \   00AD  3E55              LD      A,85
   \   00AF  320002            LD      (fileA),A
     58              fileA[1]='S';
   \   00B2  3E53              LD      A,83
   \   00B4  320102            LD      (fileA+1),A
     59              fileA[2]='E';
   \   00B7  3E45              LD      A,69
   \   00B9  320202            LD      (fileA+2),A
     60              fileA[3]='R';
   \   00BC  3E52              LD      A,82
   \   00BE  320302            LD      (fileA+3),A
     61              fileA[4]='P';
   \   00C1  3E50              LD      A,80
   \   00C3  320402            LD      (fileA+4),A
     62              fileA[5]='L';
   \   00C6  3E4C              LD      A,76
   \   00C8  320502            LD      (fileA+5),A
     63              fileA[8]='P';
   \   00CB  3E50              LD      A,80
   \   00CD  320802            LD      (fileA+8),A
     64              fileA[9]='L';
   \   00D0  3E4C              LD      A,76
   \   00D2  320902            LD      (fileA+9),A
     65              fileA[11]=0;
   \   00D5  AF                XOR     A
   \   00D6  320B02            LD      (fileA+11),A
     66              output8(0x27,0x00);
   \   00D9  D327              OUT     (39),A
     67          //    FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份    
     68              FS_CD(FS_CD_ROOT);
   \   00DB  110000            LD      DE,?0013
   \   00DE  CD0000            CALL    LWRD FS_CD
     69              fp1=FS_FOpen(fileA,0);
   \   00E1  0E00              LD      C,0
   \   00E3  110002            LD      DE,fileA
   \   00E6  CD0000            CALL    LWRD FS_FOpen
   \   00E9  223902            LD      (fp1),HL
     70          
     71              if(fp1==NULL)
   \   00EC  7D                LD      A,L
   \   00ED  B4                OR      H
   \   00EE  DD7EFE            LD      A,(IX-2)
   \   00F1  D327              OUT     (39),A
   \   00F3  2005              JR      NZ,?0015
   \   00F5            ?0014:
     72              {
     73          //      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复    
     74                output8(0x27,IO27);     
     75                return FALSE ;               
   \   00F5            ?0036:
   \   00F5  2E00              LD      L,0
     76              } 
   \   00F7  C32102            JP      LWRD ?0030
   \   00FA            ?0015:
     77              output8(0x27,IO27);     
     78              PlaylistCount--;
   \   00FA  2A0000            LD      HL,(PlaylistCount)
   \   00FD  2B                DEC     HL
   \   00FE  220000            LD      (PlaylistCount),HL
     79              //先处理最后item

⌨️ 快捷键说明

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