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

📄 ap_common.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:39:20 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\common\ap_common.c               #
#       List file     =  d:\case_i_d913f\ap\ap_setting\list\ap_common.lst    #
#       Object file   =  d:\case_i_d913f\ap\ap_setting\release\obj\ap_common.r01#
#       Command line  =  -v0 -mb                                             #
#                        -OD:\case_i_d913f\ap\ap_setting\release\Obj\ -e -K  #
#                        -w -gA -s7 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_setting\List\ -q -t8        #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\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  InvertRegion
   \   0000                    EXTERN  PutSDImage
   \   0000                    PUBLIC  ResClose
   \   0000                    PUBLIC  ResInvertShowPic
   \   0000                    PUBLIC  ResOpen
   \   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  scroll_cnt
   \   0000                    PUBLIC  str_pt
   \   0000                    PUBLIC  strhead_pt
   \   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          *  $Id: ap_common.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */ 
     12          #pragma codeseg(COM_RES)
     13          
     14          #ifdef USB_DISK_USING
     15          
     16          /* usb disk 不使用调试宏*/
     17          #define NAPDEBUG
     18          
     19          /* usb disk 使用 non_bankl 方式call 这些函数*/
     20          #pragma function=non_banked
     21          
     22          #endif    /* USB_DISK_USING*/
     23          
     24          #include "ap_common.h"
     25          #ifndef USB_DISK_USING
     26          #define InvertFlag
     27          #endif
     28          //========== global field ===============
     29          
     30          //操作这些资源时不能被中断, 这些变量应该放在所有ap可见的地方
     31          SD_FILE *res_fp;
     32          res_head_t res_head;
     33          res_entry_t res_entry;
     34          region_t res_region;
     35          
     36          //滚屏相关参数 
     37          char *str_pt;//字符串当前指针
     38          char *strhead_pt;//字串首址记录
     39          BYTE scroll_cnt;  
     40           
     41          //请不要把这个变量定义在非IDATA0 段,否则不能初始化
     42          BOOL ui_auto_update=TRUE;    //是否自动刷新屏幕
     43          BOOL ui_auto_select=TRUE;    //是否自动确认
     44          BOOL ui_run_realtime=FALSE;    //控件跑实时模式
     45          
     46          /*
     47          ********************************************************************************
     48          * Description : 打开资源文件
     49          *
     50          * Arguments   : filename, 资源文件名字
     51          *
     52          * Returns     : 成功,文件指针
     53                  失败, NULL
     54          *
     55          * Notes       :
     56          *
     57          ********************************************************************************
     58          */
     59          SD_FILE *ResOpen(const char * filename)
     60          {    
   \   0000  C5                PUSH    BC
   \   0001  DDE5              PUSH    IX
   \   0003  DD210000          LD      IX,0
   \   0007  DD39              ADD     IX,SP
   \   0009  D5                PUSH    DE
     61                  //open res file
     62                  res_fp = SD_FOpen(filename, 0);
   \   000A  0E00              LD      C,0
   \   000C  CD0000            CALL    LWRD SD_FOpen
   \   000F  220000            LD      (res_fp),HL
     63                  if(res_fp == NULL ) return NULL;
   \   0012  7D                LD      A,L
   \   0013  B4                OR      H
   \   0014  2005              JR      NZ,?0003
   \   0016            ?0002:
   \   0016  210000            LD      HL,0
   \   0019  183A              JR      ?0008
   \   001B            ?0003:
     64              
     65              //check magic "RES 0x19"
     66              SD_FRead(res_fp, &res_head, sizeof(res_head));
   \   001B  211000            LD      HL,16
   \   001E  E5                PUSH    HL
   \   001F  010200            LD      BC,res_head
   \   0022  ED5B0000          LD      DE,(res_fp)
   \   0026  CD0000            CALL    LWRD SD_FRead
   \   0029  F1                POP     AF
     67              if( res_head.magic[0] != 'R' || 
     68                  res_head.magic[1] != 'E' ||
     69                  res_head.magic[2] != 'S' ||
     70                  res_head.magic[3] != 0x19 )
   \   002A  3A0200            LD      A,(res_head)
   \   002D  FE52              CP      82
   \   002F  2015              JR      NZ,?0006
   \   0031  3A0300            LD      A,(res_head+1)
   \   0034  FE45              CP      69
   \   0036  200E              JR      NZ,?0006
   \   0038  3A0400            LD      A,(res_head+2)
   \   003B  FE53              CP      83
   \   003D  2007              JR      NZ,?0006
   \   003F  3A0500            LD      A,(res_head+3)
   \   0042  FE19              CP      25
   \   0044  280C              JR      Z,?0005
   \   0046            ?0006:
   \   0046            ?0007:
   \   0046            ?0004:
     71              {
     72                  SD_FClose(res_fp);
   \   0046  ED5B0000          LD      DE,(res_fp)
   \   004A  CD0000            CALL    LWRD SD_FClose
     73                  return NULL;
   \   004D  210000            LD      HL,0
     74              }
   \   0050  1803              JR      ?0008
   \   0052            ?0005:
     75          
     76              //check count
     77              ASSERT(res_head.counts == UIID_MAX);
     78          
     79              //return ok
     80              return res_fp;    
   \   0052  2A0000            LD      HL,(res_fp)
     81          }
   \   0055            ?0008:
   \   0055  DDF9              LD      SP,IX
   \   0057  DDE1              POP     IX
   \   0059  C1                POP     BC
   \   005A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   005D            ResClose:
     82          
     83          /*
     84          ********************************************************************************
     85          * Description : 关闭资源文件
     86          *
     87          * Arguments   :
     88          *
     89          * Returns     :
     90          *
     91          * Notes       :
     92          *
     93          ********************************************************************************
     94          */
     95          void ResClose(const SD_FILE *fp)
     96          {
   \   005D  DDE5              PUSH    IX
   \   005F  DD210000          LD      IX,0
   \   0063  DD39              ADD     IX,SP
   \   0065  D5                PUSH    DE
     97              SD_FClose(fp);
   \   0066  CD0000            CALL    LWRD SD_FClose
     98          }
   \   0069  DDF9              LD      SP,IX
   \   006B  DDE1              POP     IX
   \   006D  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0070            ResShowPic:
     99          
    100          /*
    101          ********************************************************************************
    102          * Description : 在指定位置显示图形
    103          *
    104          * Arguments   : id, 资源代号
    105                  x,y, 屏幕坐标
    106          *
    107          * Returns     : 成功, 1
    108                  失败, 0
    109          *
    110          * Notes       :
    111          *
    112          ********************************************************************************
    113          */
    114          int ResShowPic(WORD id, uchar x, uchar y)
    115          {
   \   0070  DDE5              PUSH    IX
   \   0072  DD210000          LD      IX,0
   \   0076  DD39              ADD     IX,SP
   \   0078  C5                PUSH    BC
   \   0079  D5                PUSH    DE
   \   007A  F5                PUSH    AF
   \   007B  F5                PUSH    AF
    116              WORD buf[2];    //buffer for sd read
    117          
    118              ASSERT(id <= UIID_MAX);
    119              
    120              //读entry
    121              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   007C  EB                EX      DE,HL
   \   007D  010000            LD      BC,0
   \   0080  3E04              LD      A,4
   \   0082  CD0000            CALL    LWRD ?L_LSH_L03
   \   0085  C5                PUSH    BC
   \   0086  E5                PUSH    HL
   \   0087  0E00              LD      C,0
   \   0089  ED5B0000          LD      DE,(res_fp)
   \   008D  CD0000            CALL    LWRD SD_FSeek
   \   0090  E1                POP     HL
   \   0091  E1                POP     HL
    122              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));

⌨️ 快捷键说明

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