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

📄 ui_directory.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  16:58:54 #
# 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_amv\list\ui_directory.lst      #
#       Object file   =  d:\case_i_d90f\ap\ap_amv\obj\ui_directory.r01       #
#       ASM file      =  d:\case_i_d90f\ap\ap_amv\list\ui_directory.s01      #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_amv\Obj\ -e -K -w    #
#                        -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT         #
#                        -LD:\case_i_d90f\ap\ap_amv\List\ -q -t8             #
#                        -AD:\case_i_d90f\ap\ap_amv\List\                    #
#                        -ND:\case_i_d90f\ap\ap_amv\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_FAST_LEAVE_L08
   \   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  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  21ECFF            LD      HL,65516
   \   000F  39                ADD     HL,SP
   \   0010  F9                LD      SP,HL
     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')
   \   0011  1A                LD      A,(DE)
   \   0012  FE48              CP      72
   \   0014  2006              JR      NZ,?0003
   \   0016            ?0002:
     58                 DiskFlag=1;
   \   0016  DD36EA01          LD      (IX-22),1
     59              else
   \   001A  1804              JR      ?0004
   \   001C            ?0003:
     60                 DiskFlag=0;
   \   001C  DD36EA00          LD      (IX-22),0
   \   0020            ?0004:
     61              BankSwitch((unsigned long)DecodeOnePage >> 16);
   \   0020  0600              LD      B,0
   \   0022  1E00              LD      E,BYTE3 DecodeOnePage
   \   0024  CD0000            CALL    LWRD BankSwitch
     62              iTag = fselSetLocationC(location);
   \   0027  DD5EFC            LD      E,(IX-4)
   \   002A  DD56FD            LD      D,(IX-3)
   \   002D  3E00              LD      A,BYTE3 fselSetLocationC
   \   002F  210000            LD      HL,LWRD fselSetLocationC
   \   0032  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     63          
     64              count=0;
     65              if (fselDirNo[0] == 0)    //当前所选为根目录,重新初始化目录层次有关参数
   \   0035  3A0000            LD      A,(fselDirNo)
   \   0038  B7                OR      A
   \   0039  2021              JR      NZ,?0006
   \   003B            ?0005:
     66              {
     67                  for(i=0; i<8; i++)
   \   003B  DD70EC            LD      (IX-20),B
   \   003E            ?0008:
   \   003E  DD7EEC            LD      A,(IX-20)
   \   0041  FE08              CP      8
   \   0043  300B              JR      NC,?0007
   \   0045            ?0009:
     68                      fselDirNo[i] = 0;
   \   0045  4F                LD      C,A
   \   0046  210000            LD      HL,fselDirNo
   \   0049  09                ADD     HL,BC
   \   004A  70                LD      (HL),B
   \   004B  DD34EC            INC     (IX-20)
   \   004E  18EE              JR      ?0008
   \   0050            ?0007:
     69                  FS_CD(":");
   \   0050  110000            LD      DE,?0011
   \   0053  CD0000            CALL    LWRD FS_CD
     70                  fselDirLayer = 0;
   \   0056  AF                XOR     A
   \   0057  320000            LD      (fselDirLayer),A
     71              }
     72              else            //进入当前目录名所指目录中
   \   005A  1837              JR      ?0018
   \   005C            ?0006:
     73              {
     74                  if(fselDirLayer<7)
   \   005C  3A0000            LD      A,(fselDirLayer)
   \   005F  FE07              CP      7
   \   0061  3030              JR      NC,?0018
   \   0063            ?0013:
     75                  {
     76                      if(fselDirNo[fselDirLayer])
   \   0063  4F                LD      C,A
   \   0064  210000            LD      HL,fselDirNo
   \   0067  09                ADD     HL,BC
   \   0068  7E                LD      A,(HL)
   \   0069  B7                OR      A
   \   006A  2806              JR      Z,?0016
   \   006C            ?0015:
     77                          fselDirLayer=fselDirLayer+1;
   \   006C  79                LD      A,C
   \   006D  C601              ADD     A,1
   \   006F  320000            LD      (fselDirLayer),A
   \   0072            ?0016:
     78                      if(FS_CD(location->path))
   \   0072  210E00            LD      HL,14
   \   0075  DD4EFC            LD      C,(IX-4)
   \   0078  DD46FD            LD      B,(IX-3)
   \   007B  09                ADD     HL,BC
   \   007C  EB                EX      DE,HL
   \   007D  CD0000            CALL    LWRD FS_CD
   \   0080  B7                OR      A
   \   0081  2810              JR      Z,?0018
   \   0083            ?0017:
     79                      {
     80                          fselDirLayer=fselDirLayer+1;
   \   0083  3A0000            LD      A,(fselDirLayer)
   \   0086  C601              ADD     A,1
   \   0088  320000            LD      (fselDirLayer),A
     81                          fselDirNo[fselDirLayer] = 0;     //将当前目录号重新置为0(即目录首)
   \   008B  4F                LD      C,A
   \   008C  0600              LD      B,0
   \   008E  210000            LD      HL,fselDirNo
   \   0091  09                ADD     HL,BC
   \   0092  70                LD      (HL),B
   \   0093            ?0018:
   \   0093            ?0014:
   \   0093            ?0012:
     82                      }
     83                  }
     84              }
     85          
     86              init_dir_buf();        //初始化目录查询表并计算有效目录总数和文件总数
   \   0093  3E00              LD      A,BYTE3 init_dir_buf
   \   0095  210000            LD      HL,LWRD init_dir_buf
   \   0098  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     87              list_active=0;
   \   009B  210000            LD      HL,0
   \   009E  220000            LD      (list_active),HL
     88              cur_group=0;
   \   00A1  220000            LD      (cur_group),HL
     89          
     90              top=0; //顶的序号
     91              bottom=top+GroupDefine-1;                  //底的序号
   \   00A4  FD210500          LD      IY,5
     92              if(bottom>(list_total_num-1))
   \   00A8  AF                XOR     A
   \   00A9  DD77E8            LD      (IX-24),A
   \   00AC  DD77E9            LD      (IX-23),A
   \   00AF  2B                DEC     HL
   \   00B0  ED4B0000          LD      BC,(list_total_num)
   \   00B4  09                ADD     HL,BC
   \   00B5  FDE5              PUSH    IY
   \   00B7  C1                POP     BC
   \   00B8  A7                AND     A
   \   00B9  ED42              SBC     HL,BC
   \   00BB  300B              JR      NC,?0020
   \   00BD            ?0019:
     93                  bottom=list_total_num-1;
   \   00BD  21FFFF            LD      HL,65535
   \   00C0  ED4B0000          LD      BC,(list_total_num)
   \   00C4  09                ADD     HL,BC
   \   00C5  E5                PUSH    HL
   \   00C6  FDE1              POP     IY
   \   00C8            ?0020:
     94          
     95              DecodeOnePage(top,bottom,type,string_id);
   \   00C8  DD6E08            LD      L,(IX+8)
   \   00CB  E5                PUSH    HL
   \   00CC  DD6EFE            LD      L,(IX-2)
   \   00CF  E5                PUSH    HL
   \   00D0  FDE5              PUSH    IY
   \   00D2  C1                POP     BC
   \   00D3  5F                LD      E,A
   \   00D4  53                LD      D,E
   \   00D5  CD2304            CALL    LWRD ?0121
   \   00D8  E1                POP     HL
   \   00D9  E1                POP     HL

⌨️ 快捷键说明

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