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

📄 ap_common.lst

📁 action mp3 devo,eki e,eikf, kdife l
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       12/Apr/106  09:56:13 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d35f\ap\common\ap_common.c                #
#       List file     =  d:\case_i_d35f\ap\ap_main\list\ap_common.lst        #
#       Object file   =  d:\case_i_d35f\ap\ap_main\release\obj\ap_common.r01 #
#       Command line  =  -v0 -mb -OD:\case_i_d35f\ap\ap_main\release\Obj\    #
#                        -e -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG              #
#                        -LD:\case_i_d35f\ap\ap_main\List\ -q -t8 -X         #
#                        -Id:\sdk_i_35f\inc\ -Id:\case_i_d35f\inc\           #
#                        d:\case_i_d35f\AP\COMMON\ap_common.c                #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ap_common(17)
   \   0000                    RSEG    COM_RES(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  PutSDImage
   \   0000                    PUBLIC  ResClose
   \   0000                    PUBLIC  ResOpen
   \   0000                    PUBLIC  ResShowLogo
   \   0000                    PUBLIC  ResShowPic
   \   0000                    EXTERN  SD_FClose
   \   0000                    EXTERN  SD_FOpen
   \   0000                    EXTERN  SD_FRead
   \   0000                    EXTERN  SD_FSeek
   \   0000                    EXTERN  UpdateScreen
   \   0000                    PUBLIC  res_entry
   \   0000                    PUBLIC  res_fp
   \   0000                    PUBLIC  res_head
   \   0000                    PUBLIC  res_region
   \   0000                    PUBLIC  ui_auto_select
   \   0000                    PUBLIC  ui_auto_update
   \   0000                    PUBLIC  ui_run_realtime
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    COM_RES
   \   0000            ResOpen:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        ap common lib file, udisk use this file too
      5          *
      6          *        (c) Copyright, Actions Co,Ld.                             
      7          *             All Right Reserved                          
      8          *
      9          *******************************************************************************
     10          */ 
     11          #pragma codeseg(COM_RES)
     12          
     13          #ifdef USB_DISK_USING
     14          
     15          /* usb disk 不使用调试宏*/
     16          #define NAPDEBUG
     17          
     18          /* usb disk 使用 non_bankl 方式call 这些函数*/
     19          #pragma function=non_banked
     20          
     21          #endif  /* USB_DISK_USING*/
     22          
     23          #include "ap_common.h"
     24          
     25          //========== global field ===============
     26          
     27          //操作这些资源时不能被中断, 这些变量应该放在所有ap可见的地方
     28          SD_FILE *res_fp;
     29          res_head_t res_head;
     30          res_entry_t res_entry;
     31          region_t res_region;
     32          
     33          //请不要把这个变量定义在非IDATA0 段,否则不能初始化
     34          BOOL ui_auto_update=TRUE;       //是否自动刷新屏幕
     35          BOOL ui_auto_select=TRUE;       //是否自动确认
     36          BOOL ui_run_realtime=FALSE;     //控件跑实时模式
     37          
     38          /*
     39          ********************************************************************************
     40          * Description : 打开资源文件
     41          *
     42          * Arguments   : filename, 资源文件名字
     43          *
     44          * Returns     : 成功,文件指针
     45                          失败, NULL
     46          *
     47          * Notes       :
     48          *
     49          ********************************************************************************
     50          */
     51          SD_FILE *ResOpen(const char * filename)
     52          {    
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
     53                  //open res file
     54                  res_fp = SD_FOpen(filename, 0);
   \   0002  0E00              LD      C,0
   \   0004  CD0000            CALL    LWRD SD_FOpen
   \   0007  220000            LD      (res_fp),HL
     55                  if(res_fp == NULL ) return NULL;
   \   000A  7D                LD      A,L
   \   000B  B4                OR      H
   \   000C  2832              JR      Z,?0020
   \   000E            ?0002:
   \   000E            ?0003:
     56              
     57                  //check magic "RES 0x19"
     58                  SD_FRead(res_fp, &res_head, sizeof(res_head));
   \   000E  211000            LD      HL,16
   \   0011  E5                PUSH    HL
   \   0012  010200            LD      BC,res_head
   \   0015  ED5B0000          LD      DE,(res_fp)
   \   0019  CD0000            CALL    LWRD SD_FRead
   \   001C  F1                POP     AF
     59                  if( res_head.magic[0] != 'R' || 
     60                          res_head.magic[1] != 'E' ||
     61                          res_head.magic[2] != 'S' ||
     62                          res_head.magic[3] != 0x19 )
   \   001D  3A0200            LD      A,(res_head)
   \   0020  FE52              CP      82
   \   0022  2015              JR      NZ,?0006
   \   0024  3A0300            LD      A,(res_head+1)
   \   0027  FE45              CP      69
   \   0029  200E              JR      NZ,?0006
   \   002B  3A0400            LD      A,(res_head+2)
   \   002E  FE53              CP      83
   \   0030  2007              JR      NZ,?0006
   \   0032  3A0500            LD      A,(res_head+3)
   \   0035  FE19              CP      25
   \   0037  280C              JR      Z,?0005
   \   0039            ?0006:
   \   0039            ?0007:
   \   0039            ?0004:
     63                  {
     64                          SD_FClose(res_fp);
   \   0039  ED5B0000          LD      DE,(res_fp)
   \   003D  CD0000            CALL    LWRD SD_FClose
     65                          return NULL;
   \   0040            ?0020:
   \   0040  210000            LD      HL,0
     66                  }
   \   0043  1803              JR      ?0008
   \   0045            ?0005:
     67          
     68                  //check count
     69                  ASSERT(res_head.counts == UIID_MAX);
     70          
     71                  //return ok
     72                  return res_fp;    
   \   0045  2A0000            LD      HL,(res_fp)
     73          }
   \   0048            ?0008:
   \   0048  F1                POP     AF
   \   0049  C1                POP     BC
   \   004A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   004D            ResClose:
     74          
     75          /*
     76          ********************************************************************************
     77          * Description : 关闭资源文件
     78          *
     79          * Arguments   :
     80          *
     81          * Returns     :
     82          *
     83          * Notes       :
     84          *
     85          ********************************************************************************
     86          */
     87          void ResClose(const SD_FILE *fp)
     88          {
   \   004D  D5                PUSH    DE
     89                  SD_FClose(fp);
   \   004E  CD0000            CALL    LWRD SD_FClose
     90          }
   \   0051  E1                POP     HL
   \   0052  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0055            ResShowLogo:
     91          
     92          /*
     93          ********************************************************************************
     94          * Description : 显示128*32 的图形
     95          *
     96          * Arguments   : id, 资源代号
     97          *
     98          * Returns     : 成功,1  失败,0
     99          *
    100          * Notes       :
    101          *
    102          ********************************************************************************
    103          */
    104          int ResShowLogo(WORD id)
    105          {
   \   0055  C5                PUSH    BC
   \   0056  D5                PUSH    DE
    106                  ASSERT(id <= UIID_MAX);
    107                  
    108                  //读entry
    109                  SD_FSeek(res_fp, SEEK_SET,  (long)id * sizeof(res_entry_t));
   \   0057  6B                LD      L,E
   \   0058  62                LD      H,D
   \   0059  010000            LD      BC,0
   \   005C  3E04              LD      A,4
   \   005E  CD0000            CALL    LWRD ?L_LSH_L03
   \   0061  C5                PUSH    BC
   \   0062  E5                PUSH    HL
   \   0063  0E00              LD      C,0
   \   0065  ED5B0000          LD      DE,(res_fp)
   \   0069  CD0000            CALL    LWRD SD_FSeek
   \   006C  E1                POP     HL
   \   006D  E1                POP     HL
    110                  SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   006E  211000            LD      HL,16
   \   0071  E5                PUSH    HL
   \   0072  011200            LD      BC,res_entry
   \   0075  ED5B0000          LD      DE,(res_fp)
   \   0079  CD0000            CALL    LWRD SD_FRead
   \   007C  F1                POP     AF
    111                  if(res_entry.type != RES_TYPE_LOGO) return 0;
   \   007D  3A1800            LD      A,(res_entry+6)
   \   0080  FE04              CP      4
   \   0082  2805              JR      Z,?0010
   \   0084            ?0009:
   \   0084  210000            LD      HL,0
    112                  ASSERT(res_entry.length <= 512);
   \   0087  184C              JR      ?0013
   \   0089            ?0010:
    113          
    114                  //读数据
    115                  SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   0089  2A1400            LD      HL,(res_entry+2)
   \   008C  E5                PUSH    HL

⌨️ 快捷键说明

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