ui_userlist.lst

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

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

   \   0000                    NAME    ui_userlist(17)
   \   0000                    RSEG    AP_UI_PLAYLIST(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    APD_UI_PLAYLIST(0)
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FOpen
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    EXTERN  FirstOffset
   \   0000                    EXTERN  LastOffset
   \   0000                    PUBLIC  Open_view
   \   0000                    EXTERN  PlaylistCount
   \   0000                    PUBLIC  Process_onePage
   \   0000                    EXTERN  ScrollFlag
   \   0000                    EXTERN  WrHead_PL
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    PUBLIC  disbuff
   \   0000                    PUBLIC  fpview
   \   0000                    EXTERN  g_music_vars
   \   0000                    PUBLIC  ui_Read_Data
   \   0000                    PUBLIC  ui_userplaylist
   \   0000                    EXTERN  ui_viewlist
   \   0000                    EXTERN  user_pl_del
   \   0000                    PUBLIC  vFirstOffset
   \   0000                    PUBLIC  vLastOffset
   \   0000                    PUBLIC  vTotal
   \   0000                    PUBLIC  vbuff
   \   0000                    PUBLIC  vfilename
   \   0000                    PUBLIC  vsave_offset
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?UC_MOD_L01
   \   0000                    EXTERN  ?S_LSH_L02
   \   0000                    EXTERN  ?US_MOD_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   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                    RSEG    AP_UI_PLAYLIST
   \   0000            Open_view:
      1          #include "ap_music.h"
      2          extern void ui_viewlist(char old_active,char new_active,char num,char type,bool scroll_flag);   
      3          extern BOOL Clear_PL(void); 
      4          extern  char     ScrollFlag;   //滚动标志位  
      5          #pragma memory=dataseg(APD_UI_PLAYLIST)
      6          char vbuff[512];
      7          char disbuff[MENU_GROUP*30];
      8          char vfilename[12];
      9          handle fpview; 
     10          WORD vFirstOffset;
     11          WORD vLastOffset;
     12          WORD vTotal;
     13          WORD vsave_offset;  
     14          #pragma memory=default
     15          #pragma codeseg(AP_UI_PLAYLIST)
     16          BOOL Open_view()
     17          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  FEFF              DEFW    65534
     18              char IO27;
     19          //    char Backbuf[32];
     20              IO27 = input8(0x27);
   \   0005  DB27              IN      A,(39)
   \   0007  DD77FE            LD      (IX-2),A
     21              memset(vfilename,0x20,12);
   \   000A  010C00            LD      BC,12
   \   000D  11B402            LD      DE,vfilename
   \   0010  212000            LD      HL,32
   \   0013  CD0000            CALL    LWRD ?MEMSET_L11
     22              vfilename[0]='U';
   \   0016  3E55              LD      A,85
   \   0018  32B402            LD      (vfilename),A
     23              vfilename[1]='S';
   \   001B  3E53              LD      A,83
   \   001D  32B502            LD      (vfilename+1),A
     24              vfilename[2]='E';
   \   0020  3E45              LD      A,69
   \   0022  32B602            LD      (vfilename+2),A
     25              vfilename[3]='R';
   \   0025  3E52              LD      A,82
   \   0027  32B702            LD      (vfilename+3),A
     26              vfilename[4]='P';
   \   002A  3E50              LD      A,80
   \   002C  32B802            LD      (vfilename+4),A
     27              vfilename[5]='L';
   \   002F  3E4C              LD      A,76
   \   0031  32B902            LD      (vfilename+5),A
     28              vfilename[8]='P';
   \   0034  3E50              LD      A,80
   \   0036  32BC02            LD      (vfilename+8),A
     29              vfilename[9]='L';
   \   0039  3E4C              LD      A,76
   \   003B  32BD02            LD      (vfilename+9),A
     30              vfilename[11]=0;
   \   003E  AF                XOR     A
   \   003F  32BF02            LD      (vfilename+11),A
     31              
     32             
     33          //    if(FS_Init()) 
     34          //    {
     35               output8(0x27,00);
   \   0042  D327              OUT     (39),A
     36          //     FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
     37               FS_CD(FS_CD_ROOT);
   \   0044  110000            LD      DE,?0002
   \   0047  CD0000            CALL    LWRD FS_CD
     38               fpview=FS_FOpen(vfilename,0);
   \   004A  0E00              LD      C,0
   \   004C  11B402            LD      DE,vfilename
   \   004F  CD0000            CALL    LWRD FS_FOpen
   \   0052  22C002            LD      (fpview),HL
     39               if(fpview == NULL)
   \   0055  7D                LD      A,L
   \   0056  B4                OR      H
   \   0057  2854              JR      Z,?0011
   \   0059            ?0003:
     40               {
     41          //        FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
     42                  output8(0x27,IO27); 
     43                  return FALSE;
     44               }
   \   0059            ?0004:
     45             
     46              if(FS_FRead(vbuff,1,fpview))
   \   0059  E5                PUSH    HL
   \   005A  0E01              LD      C,1
   \   005C  110000            LD      DE,vbuff
   \   005F  CD0000            CALL    LWRD FS_FRead
   \   0062  E1                POP     HL
   \   0063  B7                OR      A
   \   0064  2847              JR      Z,?0011
   \   0066            ?0005:
     47                   {
     48                              if(memcmp(vbuff,vfilename,6)==0)
   \   0066  010600            LD      BC,6
   \   0069  110000            LD      DE,vbuff
   \   006C  21B402            LD      HL,vfilename
   \   006F  CD0000            CALL    LWRD ?MEMCMP_L11
   \   0072  7D                LD      A,L
   \   0073  B4                OR      H
   \   0074  2037              JR      NZ,?0011
   \   0076            ?0007:
     49                              {
     50                                  memcpy(&vFirstOffset,vbuff+6,2);
   \   0076  0E02              LD      C,2
   \   0078  11C202            LD      DE,vFirstOffset
   \   007B  210600            LD      HL,vbuff+6
   \   007E  EDB0              LDIR
     51                                  memcpy(&vLastOffset,vbuff+6+2,2);
   \   0080  03                INC     BC
   \   0081  03                INC     BC
   \   0082  11C402            LD      DE,vLastOffset
   \   0085  210800            LD      HL,vbuff+8
   \   0088  EDB0              LDIR
     52                                  memcpy(&vTotal,vbuff+6+2+2,2);
   \   008A  03                INC     BC
   \   008B  03                INC     BC
   \   008C  11C602            LD      DE,vTotal
   \   008F  210A00            LD      HL,vbuff+10
   \   0092  EDB0              LDIR
     53                                  if(vTotal == 0)
   \   0094  2AC602            LD      HL,(vTotal)
   \   0097  7D                LD      A,L
   \   0098  B4                OR      H
   \   0099  2009              JR      NZ,?0010
   \   009B            ?0009:
     54                                  {
     55                                     FS_FClose(fpview);
   \   009B  ED5BC002          LD      DE,(fpview)
   \   009F  CD0000            CALL    LWRD FS_FClose
     56                                  }
     57                               else
   \   00A2  1809              JR      ?0011
   \   00A4            ?0010:
     58                                  {
     59                              //      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
     60                                    output8(0x27,IO27); 
   \   00A4  DD7EFE            LD      A,(IX-2)
   \   00A7  D327              OUT     (39),A
     61                                   return TRUE;
   \   00A9  2E01              LD      L,1
     62                                  }
   \   00AB  1807              JR      ?0012
   \   00AD            ?0011:
   \   00AD            ?0008:
   \   00AD            ?0006:
     63                              }
     64                      }
     65          //    }
     66          //FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
     67          output8(0x27,IO27); 
   \   00AD  DD7EFE            LD      A,(IX-2)
   \   00B0  D327              OUT     (39),A
     68          return FALSE;
   \   00B2  2E00              LD      L,0
     69              
     70          }
   \   00B4            ?0012:
   \   00B4  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   00B7            ui_Read_Data:
     71          
     72          BOOL ui_Read_Data(WORD offset)
     73          {
   \   00B7  C5                PUSH    BC
   \   00B8  DDE5              PUSH    IX
   \   00BA  F5                PUSH    AF
   \   00BB  D5                PUSH    DE
   \   00BC  DDE1              POP     IX
     74              char IO27;
     75              IO27 = input8(0x27);
   \   00BE  DB27              IN      A,(39)
   \   00C0  210000            LD      HL,0
   \   00C3  39                ADD     HL,SP
   \   00C4  77                LD      (HL),A
     76              output8(0x27,00);
   \   00C5  AF                XOR     A
   \   00C6  D327              OUT     (39),A
     77               
     78              if(vsave_offset==0xffff)
   \   00C8  2AC802            LD      HL,(vsave_offset)
   \   00CB  7D                LD      A,L
   \   00CC  A4                AND     H
   \   00CD  3C                INC     A
   \   00CE  2814              JR      Z,?0099
   \   00D0            ?0013:
     79              {
     80                  vsave_offset = offset/4;
     81              }
     82              else
   \   00D0            ?0014:
     83              {
     84                  if(vsave_offset!=(offset/4))
   \   00D0  DDE5              PUSH    IX
   \   00D2  E1                POP     HL
   \   00D3  CB3C              SRL     H
   \   00D5  CB1D              RR      L
   \   00D7  CB3C              SRL     H
   \   00D9  CB1D              RR      L
   \   00DB  ED4BC802          LD      BC,(vsave_offset)
   \   00DF  A7                AND     A
   \   00E0  ED42              SBC     HL,BC
   \   00E2  2834              JR      Z,?0100
   \   00E4            ?0016:
     85                  {
     86                       
     87                      vsave_offset = offset/4;
   \   00E4            ?0099:
   \   00E4  DDE5              PUSH    IX
   \   00E6  E1                POP     HL
   \   00E7  CB3C              SRL     H
   \   00E9  CB1D              RR      L
   \   00EB  CB3C              SRL     H
   \   00ED  CB1D              RR      L
   \   00EF  22C802            LD      (vsave_offset),HL
     88                  }
     89                  else
   \   00F2            ?0017:
     90                  {

⌨️ 快捷键说明

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