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

📄 ui_director_rec2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:31:16 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\common\ui_director_rec2.c        #
#       List file     =  d:\case_i_d913f\ap\ap_fmrecord\list\ui_director_rec2.lst#
#       Object file   =  d:\case_i_d913f\ap\ap_fmrecord\obj\ui_director_rec2.r01#
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_fmrecord\Obj\ -e    #
#                        -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG                 #
#                        -LD:\case_i_d913f\ap\ap_fmrecord\List\ -q -t8 -X    #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\COMMON\ui_director_rec2.c        #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_director_rec2(17)
   \   0000                    RSEG    DEC_COM_FSL_C(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    DEC_COM_FSL_D(0)
   \   0000                    RSEG    IDM_COM_FSL_D(0)
   \   0000                    RSEG    DEC_COM_FSL_R(0)
   \   0000                    PUBLIC  DecodeOnePage
   \   0000                    EXTERN  FS_Backup
   \   0000                    EXTERN  FS_Dir
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  FS_Restore
   \   0000                    PUBLIC  GetLongNameAndSave
   \   0000                    PUBLIC  OnePageRecord
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    PUBLIC  SaveOtherPara
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  SetTextPos
   \   0000                    PUBLIC  ShowDirectory
   \   0000                    EXTERN  ToDirEntry
   \   0000                    PUBLIC  TransOneRecord
   \   0000                    PUBLIC  Ui_IgnoreExt
   \   0000                    PUBLIC  count_dir_num
   \   0000                    PUBLIC  cur_group
   \   0000                    PUBLIC  dir_total_num
   \   0000                    PUBLIC  dirbuf
   \   0000                    EXTERN  file_name
   \   0000                    PUBLIC  file_total_num
   \   0000                    EXTERN  fselDirLayer
   \   0000                    EXTERN  fselDirNo
   \   0000                    EXTERN  fselExtNo
   \   0000                    EXTERN  fselFileNo
   \   0000                    PUBLIC  get_dir_name
   \   0000                    PUBLIC  init_dir_buf
   \   0000                    PUBLIC  list_active
   \   0000                    PUBLIC  list_total_num
   \   0000                    PUBLIC  menu_pos
   \   0000                    PUBLIC  temp_record
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?UC_MOD_L01
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    DEC_COM_FSL_C
   \   0000            count_dir_num:
      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_director2.c
     10          * By  : jmzhang
     11          * Version: v1.00     first version     2005-9-22 19:35
     12          *******************************************************************************
     13          */
     14          #pragma codeseg(DEC_COM_FSL_C)
     15          
     16          #include "ap_common.h"
     17          #include "enhanced.h"
     18          #include "actos.h"
     19          #include "filesys.h"
     20          #include "directory.h"
     21          
     22          const char menu_pos[6] = { 22,22+18,22+18*2,22+18*3,22+18*4,22+18*5};    //zxs add
     23          
     24          void GetLongNameAndSave(char *Namebuf,char *LongNamebuf,BYTE string_id);
     25          void SaveOtherPara(void);
     26          void TransOneRecord(file_record *target,file_record *source_record);
     27          void   ShowDirectory(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,BYTE string_id,BYTE Disk);
     28          
     29          
     30          #pragma memory=dataseg(DEC_COM_FSL_D)
     31          file_record temp_record;
     32          WORD dir_total_num,file_total_num,list_total_num,list_active,cur_group;    //目录总数,文件总数和浏览项数,浏览活动项
     33          
     34          #pragma memory=dataseg(IDM_COM_FSL_D)
     35          file_record OnePageRecord[row_count_def];
     36          char dirbuf[125];
     37          
     38          #pragma memory=constseg(DEC_COM_FSL_R)
     39          const char Ui_IgnoreExt[4] = {"*  "};
     40          
     41          
     42          
     43          #pragma memory=default
     44          
     45          /*
     46          ********************************************************************************
     47          * Description : 当前目录下,子目录的总数
     48          *
     49          * Arguments   :
     50          *
     51          * Returns     : 子目录总数
     52          *
     53          * Notes       :
     54          *
     55          ********************************************************************************
     56          */
     57          WORD count_dir_num(void)
     58          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  DDE5              PUSH    IX
   \   0004  21F4FF            LD      HL,65524
   \   0007  39                ADD     HL,SP
   \   0008  F9                LD      SP,HL
     59              WORD tmp,wtemp,total;
     60              char strDir[12];
     61              tmp = 0;
     62              wtemp = 1;
   \   0009  110000            LD      DE,0
   \   000C  DD210100          LD      IX,1
   \   0010            ?0003:
     63              while(1)
     64              {
     65                  if (! ToDirEntry(strDir, wtemp))
   \   0010  D5                PUSH    DE
   \   0011  DDE5              PUSH    IX
   \   0013  C1                POP     BC
   \   0014  210200            LD      HL,2
   \   0017  39                ADD     HL,SP
   \   0018  EB                EX      DE,HL
   \   0019  3E00              LD      A,BYTE3 ToDirEntry
   \   001B  210000            LD      HL,LWRD ToDirEntry
   \   001E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0021  2C                INC     L
   \   0022  2D                DEC     L
   \   0023  D1                POP     DE
   \   0024  2015              JR      NZ,?0006
   \   0026            ?0005:
     66                  {
     67                      return (wtemp-1);
   \   0026  21FFFF            LD      HL,65535
   \   0029  DDE5              PUSH    IX
   \   002B  C1                POP     BC
   \   002C  09                ADD     HL,BC
     68                  }
   \   002D  EB                EX      DE,HL
   \   002E  210C00            LD      HL,12
   \   0031  39                ADD     HL,SP
   \   0032  F9                LD      SP,HL
   \   0033  EB                EX      DE,HL
   \   0034  DDE1              POP     IX
   \   0036  D1                POP     DE
   \   0037  C1                POP     BC
   \   0038  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   003B            ?0006:
     69                  // 只检查文件夹是否有效
     70                  wtemp ++;
     71               }
     72          }
   \   003B  DD23              INC     IX
   \   003D  18D1              JR      ?0003
   \   003F            GetLongNameAndSave:
     73          
     74          
     75          /********************************************************************************
     76          * Description :GetLongNameAndSave和SaveOtherPara用于保存
     77          *        读取记录的参数到全局的temp_record中
     78          *
     79          ** Arguments  :
     80          *
     81          * Returns     :
     82          *
     83          * Notes       :
     84          *
     85          ********************************************************************************/
     86          void GetLongNameAndSave(char *Namebuf,char *LongNamebuf,BYTE string_id)
     87          {
   \   003F  FDE5              PUSH    IY
   \   0041  DDE5              PUSH    IX
   \   0043  F5                PUSH    AF
   \   0044  C5                PUSH    BC
   \   0045  DDE1              POP     IX
   \   0047  D5                PUSH    DE
   \   0048  FDE1              POP     IY
     88                  BYTE NameNum;
     89                  memcpy(LongNamebuf,Namebuf,11);
   \   004A  010B00            LD      BC,11
   \   004D  DDE5              PUSH    IX
   \   004F  D1                POP     DE
   \   0050  FDE5              PUSH    IY
   \   0052  E1                POP     HL
   \   0053  EDB0              LDIR
     90                  memcpy(temp_record.name,Namebuf,12);
   \   0055  0E0C              LD      C,12
   \   0057  110D00            LD      DE,temp_record+13
   \   005A  FDE5              PUSH    IY
   \   005C  E1                POP     HL
   \   005D  EDB0              LDIR
     91                  NameNum=FS_GetName(LongNamebuf,24);
   \   005F  0E18              LD      C,24
   \   0061  DDE5              PUSH    IX
   \   0063  D1                POP     DE
   \   0064  CD0000            CALL    LWRD FS_GetName
   \   0067  210000            LD      HL,0
   \   006A  39                ADD     HL,SP
   \   006B  77                LD      (HL),A
     92                  if(NameNum!=0)
   \   006C  AF                XOR     A
   \   006D  B6                OR      (HL)
   \   006E  2825              JR      Z,?0008
   \   0070            ?0007:
     93                  {
     94                      unitochar(LongNamebuf,NameNum*2+2,string_id);
   \   0070  210A00            LD      HL,10
   \   0073  39                ADD     HL,SP
   \   0074  4E                LD      C,(HL)
   \   0075  C5                PUSH    BC
   \   0076  6F                LD      L,A
   \   0077  2600              LD      H,0
   \   0079  29                ADD     HL,HL
   \   007A  4D                LD      C,L
   \   007B  44                LD      B,H
   \   007C  03                INC     BC
   \   007D  03                INC     BC
   \   007E  DDE5              PUSH    IX
   \   0080  D1                POP     DE
   \   0081  3E00              LD      A,BYTE3 unitochar
   \   0083  210000            LD      HL,LWRD unitochar
   \   0086  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0089  F1                POP     AF
     95                      memcpy(temp_record.longname,LongNamebuf,50);    //get one usful record
   \   008A  013200            LD      BC,50
   \   008D  111900            LD      DE,temp_record+25
   \   0090  DDE5              PUSH    IX
   \   0092  E1                POP     HL
   \   0093  1809              JR      ?0057
     96                  }
     97                  else
   \   0095            ?0008:
     98                      memcpy(temp_record.longname,Namebuf,12);    //get one usful record
   \   0095  010C00            LD      BC,12
   \   0098  111900            LD      DE,temp_record+25
   \   009B  FDE5              PUSH    IY
   \   009D  E1                POP     HL
   \   009E            ?0057:
   \   009E  EDB0              LDIR
   \   00A0            ?0009:
     99          }
   \   00A0            ?0066:
   \   00A0  E1                POP     HL
   \   00A1  DDE1              POP     IX
   \   00A3  FDE1              POP     IY
   \   00A5  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00A8            SaveOtherPara:
    100          
    101          /********************************************************************************
    102          * Description :保存目录结构有关参数到全局结构temp_record中
    103          *
    104          ** Arguments  :
    105          *
    106          * Returns     :
    107          *
    108          * Notes       :
    109          *
    110          ********************************************************************************/
    111          void SaveOtherPara(void)
    112          {
   \   00A8  C5                PUSH    BC
   \   00A9  D5                PUSH    DE
    113              memcpy(temp_record.dirno,fselDirNo,8);    //目录序号
   \   00AA  010800            LD      BC,8
   \   00AD  110100            LD      DE,temp_record+1
   \   00B0  210000            LD      HL,fselDirNo

⌨️ 快捷键说明

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