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

📄 ui_directory.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:30 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_directory.c             #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ui_directory.lst    #
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ui_directory.r01     #
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ui_directory.s01    #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w  #
#                        -gA -z9 -RCODE -r0 -DNAPDEBUG                       #
#                        -LD:\case_i_d90f\ap\ap_music\List\ -q -t8           #
#                        -AD:\case_i_d90f\ap\ap_music\List\                  #
#                        -ND:\case_i_d90f\ap\ap_music\List\ -X               #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\AP\COMMON\ui_directory.c             #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_directory(17)
   \   0000                    RSEG    COM_CTRL(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    EXTERN  BankSwitch
   \   0000                    EXTERN  DecodeOnePage
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  GetActiveDirFrom
   \   0000                    EXTERN  OnePageRecord
   \   0000                    EXTERN  ShowDirectory
   \   0000                    EXTERN  TransOneRecord
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  cur_group
   \   0000                    EXTERN  fselDirLayer
   \   0000                    EXTERN  fselDirNo
   \   0000                    EXTERN  fselEntCurrentDir
   \   0000                    EXTERN  fselExtNo
   \   0000                    EXTERN  fselFileNo
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselRetParentDir
   \   0000                    EXTERN  fselSetLocationC
   \   0000                    EXTERN  init_dir_buf
   \   0000                    EXTERN  list_active
   \   0000                    EXTERN  list_total_num
   \   0000                    EXTERN  temp_record
   \   0000                    PUBLIC  ui_directory
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?US_DIV_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  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    COM_CTRL
   \   0000            ui_directory:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        ap common lib, directory control file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          * File: ui_directory.c
     10          * By  : jmzhang
     11          * Version: v1.00     first version     2005-9-22 19:35
     12          *******************************************************************************
     13          */
     14          #pragma codeseg(COM_CTRL)
     15          
     16          #include "ap_common.h"
     17          #include "directory.h"
     18          #include "filesys.h"
     19          
     20          #pragma memory=dataseg(DEC_COM_FSL_D)
     21          extern file_record temp_record;
     22          extern WORD dir_total_num,file_total_num,list_total_num,list_active,cur_group;    //目录总数,文件总数和浏览项数,浏览活动项
     23          
     24          #pragma memory=dataseg(IDM_COM_FSL_D)
     25          extern file_record OnePageRecord[row_count_def];
     26          extern char dirbuf[125];
     27          #pragma memory=default
     28          
     29          extern void DecodeOnePage(WORD top,WORD bottom,BYTE type, BYTE string_id);
     30          extern void ShowDirectory(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,BYTE string_id,BYTE Disk);
     31          extern void init_dir_buf(void);
     32          extern void TransOneRecord(file_record *target,file_record *source_record);
     33          extern WORD GetActiveDirFrom(WORD n);
     34          
     35          /********************************************************************************
     36          * Description : select the directory.
     37          *
     38          * Arguments  :
     39          *            location: get thedisk type
     40          *            type : show file kind
     41          *            string_id: language type
     42          * Returns     :
     43          *            other:    Successful
     44          *            0:    Fail, detail information in fselError
     45          * Notes       :  only select the valid directory
     46          *
     47          ********************************************************************************/
     48          int ui_directory(file_location_t *location, BYTE type,BYTE string_id)
     49          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  ECFF              DEFW    -20
   \   0005  FDE5              PUSH    IY
     50              char Strname[12], bakname[12];
     51              char key;
     52              BYTE  iTag,i;
     53              BYTE  temp,count;
     54              WORD   top,bottom,old_active;
     55              BYTE  active;
     56              BYTE  DiskFlag;
     57              if(location->disk=='H')
   \   0007  DD6E02            LD      L,(IX+2)
   \   000A  DD6603            LD      H,(IX+3)
   \   000D  7E                LD      A,(HL)
   \   000E  FE48              CP      72
   \   0010  2006              JR      NZ,?0003
   \   0012            ?0002:
     58                 DiskFlag=1;
   \   0012  DD36EE01          LD      (IX-18),1
     59              else
   \   0016  1804              JR      ?0004
   \   0018            ?0003:
     60                 DiskFlag=0;
   \   0018  DD36EE00          LD      (IX-18),0
   \   001C            ?0004:
     61              BankSwitch((unsigned long)DecodeOnePage >> 16);
   \   001C  0600              LD      B,0
   \   001E  1E00              LD      E,BYTE3 DecodeOnePage
   \   0020  CD0000            CALL    LWRD BankSwitch
     62              iTag = fselSetLocationC(location);
   \   0023  CD4404            CALL    LWRD ?0116
     63          
     64              count=0;
     65              if (fselDirNo[0] == 0)    //当前所选为根目录,重新初始化目录层次有关参数
   \   0026  3A0000            LD      A,(fselDirNo)
   \   0029  B7                OR      A
   \   002A  2021              JR      NZ,?0006
   \   002C            ?0005:
     66              {
     67                  for(i=0; i<8; i++)
   \   002C  DD70F0            LD      (IX-16),B
   \   002F            ?0008:
   \   002F  DD7EF0            LD      A,(IX-16)
   \   0032  FE08              CP      8
   \   0034  300B              JR      NC,?0007
   \   0036            ?0009:
     68                      fselDirNo[i] = 0;
   \   0036  4F                LD      C,A
   \   0037  210000            LD      HL,fselDirNo
   \   003A  09                ADD     HL,BC
   \   003B  70                LD      (HL),B
   \   003C  DD34F0            INC     (IX-16)
   \   003F  18EE              JR      ?0008
   \   0041            ?0007:
     69                  FS_CD(":");
   \   0041  110000            LD      DE,?0011
   \   0044  CD0000            CALL    LWRD FS_CD
     70                  fselDirLayer = 0;
   \   0047  AF                XOR     A
   \   0048  320000            LD      (fselDirLayer),A
     71              }
     72              else            //进入当前目录名所指目录中
   \   004B  1837              JR      ?0018
   \   004D            ?0006:
     73              {
     74                  if(fselDirLayer<7)
   \   004D  3A0000            LD      A,(fselDirLayer)
   \   0050  FE07              CP      7
   \   0052  3030              JR      NC,?0018
   \   0054            ?0013:
     75                  {
     76                      if(fselDirNo[fselDirLayer])
   \   0054  4F                LD      C,A
   \   0055  210000            LD      HL,fselDirNo
   \   0058  09                ADD     HL,BC
   \   0059  7E                LD      A,(HL)
   \   005A  B7                OR      A
   \   005B  2806              JR      Z,?0016
   \   005D            ?0015:
     77                          fselDirLayer=fselDirLayer+1;
   \   005D  79                LD      A,C
   \   005E  C601              ADD     A,1
   \   0060  320000            LD      (fselDirLayer),A
   \   0063            ?0016:
     78                      if(FS_CD(location->path))
   \   0063  210E00            LD      HL,14
   \   0066  DD4E02            LD      C,(IX+2)
   \   0069  DD4603            LD      B,(IX+3)
   \   006C  09                ADD     HL,BC
   \   006D  EB                EX      DE,HL
   \   006E  CD0000            CALL    LWRD FS_CD
   \   0071  B7                OR      A
   \   0072  2810              JR      Z,?0018
   \   0074            ?0017:
     79                      {
     80                          fselDirLayer=fselDirLayer+1;
   \   0074  3A0000            LD      A,(fselDirLayer)
   \   0077  C601              ADD     A,1
   \   0079  320000            LD      (fselDirLayer),A
     81                          fselDirNo[fselDirLayer] = 0;     //将当前目录号重新置为0(即目录首)
   \   007C  4F                LD      C,A
   \   007D  0600              LD      B,0
   \   007F  210000            LD      HL,fselDirNo
   \   0082  09                ADD     HL,BC
   \   0083  70                LD      (HL),B
   \   0084            ?0018:
   \   0084            ?0014:
   \   0084            ?0012:
     82                      }
     83                  }
     84              }
     85          
     86              init_dir_buf();        //初始化目录查询表并计算有效目录总数和文件总数
   \   0084  CD5204            CALL    LWRD ?0117
     87              list_active=0;
   \   0087  210000            LD      HL,0
   \   008A  220000            LD      (list_active),HL
     88              cur_group=0;
   \   008D  220000            LD      (cur_group),HL
     89          
     90              top=0; //顶的序号
     91              bottom=top+GroupDefine-1;                  //底的序号
   \   0090  FD210500          LD      IY,5
     92              if(bottom>(list_total_num-1))
   \   0094  AF                XOR     A
   \   0095  DD77EC            LD      (IX-20),A
   \   0098  DD77ED            LD      (IX-19),A
   \   009B  2B                DEC     HL
   \   009C  ED4B0000          LD      BC,(list_total_num)
   \   00A0  09                ADD     HL,BC
   \   00A1  FDE5              PUSH    IY
   \   00A3  C1                POP     BC
   \   00A4  A7                AND     A
   \   00A5  ED42              SBC     HL,BC
   \   00A7  300B              JR      NC,?0020
   \   00A9            ?0019:
     93                  bottom=list_total_num-1;
   \   00A9  21FFFF            LD      HL,65535
   \   00AC  ED4B0000          LD      BC,(list_total_num)
   \   00B0  09                ADD     HL,BC
   \   00B1  E5                PUSH    HL
   \   00B2  FDE1              POP     IY
   \   00B4            ?0020:
     94          
     95              DecodeOnePage(top,bottom,type,string_id);
   \   00B4  DD6E0A            LD      L,(IX+10)
   \   00B7  E5                PUSH    HL
   \   00B8  DD6E04            LD      L,(IX+4)
   \   00BB  E5                PUSH    HL
   \   00BC  FDE5              PUSH    IY
   \   00BE  C1                POP     BC
   \   00BF  5F                LD      E,A
   \   00C0  53                LD      D,E
   \   00C1  CD6304            CALL    LWRD ?0118
   \   00C4  E1                POP     HL
   \   00C5  E1                POP     HL
     96              ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   00C6  DD6EEE            LD      L,(IX-18)
   \   00C9  E5                PUSH    HL
   \   00CA  DD6E0A            LD      L,(IX+10)
   \   00CD  E5                PUSH    HL
   \   00CE  3A0000            LD      A,(list_active)
   \   00D1  4F                LD      C,A
   \   00D2  C5                PUSH    BC
   \   00D3  4F                LD      C,A
   \   00D4  C5                PUSH    BC
   \   00D5  CD6B04            CALL    LWRD ?0120
   \   00D8  E1                POP     HL
   \   00D9  E1                POP     HL
   \   00DA  E1                POP     HL
   \   00DB  E1                POP     HL
   \   00DC            ?0022:
     97          
     98              while(ap_get_message()!=0) {;}
   \   00DC  CD0000            CALL    LWRD ap_get_message

⌨️ 快捷键说明

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