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

📄 ui_director2.lst

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

   \   0000                    NAME    ui_director2(17)
   \   0000                    RSEG    DEC_COM_FSL_C(0)
   \   0000                    RSEG    CSTR(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_CD
   \   0000                    EXTERN  FS_Dir
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  FS_Restore
   \   0000                    EXTERN  GetDCStatus
   \   0000                    EXTERN  GetFileTotal
   \   0000                    EXTERN  GetFileTotalCur
   \   0000                    PUBLIC  GetLongNameAndSave
   \   0000                    EXTERN  Getdirbuf
   \   0000                    EXTERN  Initdirbuf
   \   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                    EXTERN  Setdirbuf
   \   0000                    PUBLIC  ShowDirectory
   \   0000                    EXTERN  ToDirEntry
   \   0000                    PUBLIC  TransOneRecord
   \   0000                    PUBLIC  Ui_IgnoreExt
   \   0000                    EXTERN  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                    EXTERN  fselGetByNO
   \   0000                    EXTERN  fselTotal
   \   0000                    PUBLIC  get_dir_name
   \   0000                    PUBLIC  init_dir_buf
   \   0000                    PUBLIC  list_active
   \   0000                    PUBLIC  list_total_num
   \   0000                    EXTERN  menu_pos_list
   \   0000                    PUBLIC  temp_record
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?US_MOD_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    DEC_COM_FSL_C
   \   0000            GetLongNameAndSave:
      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          extern const char menu_pos_list[];
     23          ///-extern const WORD menulist_bck_pic[];
     24          
     25          void GetLongNameAndSave(char *Namebuf,char *LongNamebuf,BYTE string_id);
     26          void SaveOtherPara(void);
     27          void TransOneRecord(file_record *target,file_record *source_record);
     28          void ShowDirectory(WORD top,WORD bottom,WORD Old_active,WORD active,BYTE string_id,BYTE Disk);
     29          
     30          extern WORD count_dir_num(void);
     31          extern void Initdirbuf(void);
     32          extern void Setdirbuf(WORD n);
     33          extern WORD Getdirbuf(WORD n);
     34          
     35          #pragma memory=dataseg(DEC_COM_FSL_D)   
     36          file_record temp_record;
     37          WORD dir_total_num,file_total_num,list_total_num,list_active,cur_group;    //目录总数,文件总数和浏览项数,浏览活动项
     38          
     39          #pragma memory=dataseg(IDM_COM_FSL_D)
     40          file_record OnePageRecord[row_count_def];
     41          char dirbuf[125];
     42          
     43          #pragma memory=constseg(DEC_COM_FSL_R)
     44          const char Ui_IgnoreExt[4] = {"*  "};
     45          #pragma memory=default
     46          
     47          /********************************************************************************
     48          * Description :GetLongNameAndSave和SaveOtherPara用于保存
     49          *        读取记录的参数到全局的temp_record中
     50          *
     51          ** Arguments  :
     52          *
     53          * Returns     :
     54          *
     55          * Notes       :
     56          *
     57          ********************************************************************************/
     58          void GetLongNameAndSave(char *Namebuf,char *LongNamebuf,BYTE string_id)
     59          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  F5                PUSH    AF
   \   0005  C5                PUSH    BC
   \   0006  DDE1              POP     IX
   \   0008  D5                PUSH    DE
   \   0009  FDE1              POP     IY
     60                  BYTE NameNum;
     61                  memcpy(LongNamebuf,Namebuf,11);
   \   000B  010B00            LD      BC,11
   \   000E  DDE5              PUSH    IX
   \   0010  D1                POP     DE
   \   0011  FDE5              PUSH    IY
   \   0013  E1                POP     HL
   \   0014  EDB0              LDIR
     62                  memcpy(temp_record.name,Namebuf,12);
   \   0016  0E0C              LD      C,12
   \   0018  110D00            LD      DE,temp_record+13
   \   001B  FDE5              PUSH    IY
   \   001D  E1                POP     HL
   \   001E  EDB0              LDIR
     63                  NameNum=FS_GetName(LongNamebuf,24);
   \   0020  0E18              LD      C,24
   \   0022  DDE5              PUSH    IX
   \   0024  D1                POP     DE
   \   0025  CD0000            CALL    LWRD FS_GetName
   \   0028  210000            LD      HL,0
   \   002B  39                ADD     HL,SP
   \   002C  77                LD      (HL),A
     64                  if(NameNum!=0)
   \   002D  AF                XOR     A
   \   002E  B6                OR      (HL)
   \   002F  2825              JR      Z,?0003
   \   0031            ?0002:
     65                  {
     66                      unitochar(LongNamebuf,NameNum*2+2,string_id);
   \   0031  210A00            LD      HL,10
   \   0034  39                ADD     HL,SP
   \   0035  4E                LD      C,(HL)
   \   0036  C5                PUSH    BC
   \   0037  6F                LD      L,A
   \   0038  2600              LD      H,0
   \   003A  29                ADD     HL,HL
   \   003B  4D                LD      C,L
   \   003C  44                LD      B,H
   \   003D  03                INC     BC
   \   003E  03                INC     BC
   \   003F  DDE5              PUSH    IX
   \   0041  D1                POP     DE
   \   0042  3E00              LD      A,BYTE3 unitochar
   \   0044  210000            LD      HL,LWRD unitochar
   \   0047  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   004A  F1                POP     AF
     67                      memcpy(temp_record.longname,LongNamebuf,50);    //get one usful record
   \   004B  013200            LD      BC,50
   \   004E  111900            LD      DE,temp_record+25
   \   0051  DDE5              PUSH    IX
   \   0053  E1                POP     HL
   \   0054  1809              JR      ?0074
     68                  }
     69                  else
   \   0056            ?0003:
     70                      memcpy(temp_record.longname,Namebuf,12);    //get one usful record
   \   0056  010C00            LD      BC,12
   \   0059  111900            LD      DE,temp_record+25
   \   005C  FDE5              PUSH    IY
   \   005E  E1                POP     HL
   \   005F            ?0074:
   \   005F  EDB0              LDIR
   \   0061            ?0004:
     71          }
   \   0061            ?0087:
   \   0061  E1                POP     HL
   \   0062  DDE1              POP     IX
   \   0064  FDE1              POP     IY
   \   0066  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0069            SaveOtherPara:
     72          
     73          /********************************************************************************
     74          * Description :保存目录结构有关参数到全局结构temp_record中
     75          *
     76          ** Arguments  :
     77          *
     78          * Returns     :
     79          *
     80          * Notes       :
     81          *
     82          ********************************************************************************/
     83          void SaveOtherPara(void)
     84          {
   \   0069  C5                PUSH    BC
   \   006A  D5                PUSH    DE
     85              memcpy(temp_record.dirno,fselDirNo,8);    //目录序号
   \   006B  010800            LD      BC,8
   \   006E  110100            LD      DE,temp_record+1
   \   0071  210000            LD      HL,fselDirNo
   \   0074  EDB0              LDIR
     86              temp_record.fileno=fselFileNo;        //文件序号
   \   0076  2A0000            LD      HL,(fselFileNo)
   \   0079  220900            LD      (temp_record+9),HL
     87              temp_record.fselExtNo=fselExtNo;    //当前后缀名
   \   007C  3A0000            LD      A,(fselExtNo)
   \   007F  320C00            LD      (temp_record+12),A
     88              temp_record.dirlayer=fselDirLayer;        //目录层次 0--根目录
   \   0082  3A0000            LD      A,(fselDirLayer)
   \   0085  320B00            LD      (temp_record+11),A
     89          }
   \   0088  D1                POP     DE
   \   0089  C1                POP     BC
   \   008A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   008D            TransOneRecord:
     90          
     91          /********************************************************************************
     92          * Description :用于从idm读记录或写入记录到idm
     93          *
     94          ** Arguments  :
     95          *
     96          * Returns     :
     97          *
     98          * Notes       :
     99          *
    100          ********************************************************************************/
    101          void TransOneRecord(file_record *target,file_record *source_record)
    102          {
   \   008D  FDE5              PUSH    IY
   \   008F  DDE5              PUSH    IX
   \   0091  F5                PUSH    AF
   \   0092  C5                PUSH    BC
   \   0093  DDE1              POP     IX
   \   0095  D5                PUSH    DE
   \   0096  FDE1              POP     IY
    103              byte status;
    104              status = input8(0x05);
   \   0098  DB05              IN      A,(5)
   \   009A  210000            LD      HL,0
   \   009D  39                ADD     HL,SP

⌨️ 快捷键说明

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