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

📄 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:30:51 #
# 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_fmrecord\list\ap_common.lst   #
#       Object file   =  d:\case_i_d913f\ap\ap_fmrecord\obj\ap_common.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\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  D5                PUSH    DE
     61                  //open res file
     62                  res_fp = SD_FOpen(filename, 0);
   \   0002  0E00              LD      C,0
   \   0004  CD0000            CALL    LWRD SD_FOpen
   \   0007  220000            LD      (res_fp),HL
     63                  if(res_fp == NULL ) return NULL;
   \   000A  7D                LD      A,L
   \   000B  B4                OR      H
   \   000C  282E              JR      Z,?0020
   \   000E            ?0002:
   \   000E            ?0003:
     64              
     65              //check magic "RES 0x19"
     66              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  CD4C00            CALL    LWRD ?0021
   \   0018  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 )
   \   0019  3A0200            LD      A,(res_head)
   \   001C  FE52              CP      82
   \   001E  2015              JR      NZ,?0006
   \   0020  3A0300            LD      A,(res_head+1)
   \   0023  FE45              CP      69
   \   0025  200E              JR      NZ,?0006
   \   0027  3A0400            LD      A,(res_head+2)
   \   002A  FE53              CP      83
   \   002C  2007              JR      NZ,?0006
   \   002E  3A0500            LD      A,(res_head+3)
   \   0031  FE19              CP      25
   \   0033  280C              JR      Z,?0005
   \   0035            ?0006:
   \   0035            ?0007:
   \   0035            ?0004:
     71              {
     72                  SD_FClose(res_fp);
   \   0035  ED5B0000          LD      DE,(res_fp)
   \   0039  CD0000            CALL    LWRD SD_FClose
     73                  return NULL;
   \   003C            ?0020:
   \   003C  210000            LD      HL,0
     74              }
   \   003F  1803              JR      ?0008
   \   0041            ?0005:
     75          
     76              //check count
     77              ASSERT(res_head.counts == UIID_MAX);
     78          
     79              //return ok
     80              return res_fp;    
   \   0041  2A0000            LD      HL,(res_fp)
     81          }
   \   0044            ?0008:
   \   0044  F1                POP     AF
   \   0045  C1                POP     BC
   \   0046  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0049            ?0022:
   \   0049  011200            LD      BC,res_entry
   \   004C            ?0021:
   \   004C  ED5B0000          LD      DE,(res_fp)
   \   0050  C30000            JP      LWRD SD_FRead
   \   0053            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          {
   \   0053  D5                PUSH    DE
     97              SD_FClose(fp);
   \   0054  CD0000            CALL    LWRD SD_FClose
     98          }
   \   0057  E1                POP     HL
   \   0058  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   005B            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          {
   \   005B  C5                PUSH    BC
   \   005C  D5                PUSH    DE
   \   005D  F5                PUSH    AF
   \   005E  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));
   \   005F  6B                LD      L,E
   \   0060  62                LD      H,D
   \   0061  010000            LD      BC,0
   \   0064  3E04              LD      A,4
   \   0066  CD0000            CALL    LWRD ?L_LSH_L03
   \   0069  C5                PUSH    BC
   \   006A  E5                PUSH    HL
   \   006B  0E00              LD      C,0
   \   006D  ED5B0000          LD      DE,(res_fp)
   \   0071  CD0000            CALL    LWRD SD_FSeek
   \   0074  E1                POP     HL
   \   0075  E1                POP     HL
    122              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   0076  211000            LD      HL,16
   \   0079  E5                PUSH    HL
   \   007A  CD4900            CALL    LWRD ?0022
   \   007D  F1                POP     AF
    123              if(res_entry.type != RES_TYPE_PIC) return 0;
   \   007E  3A1800            LD      A,(res_entry+6)
   \   0081  3D                DEC     A

⌨️ 快捷键说明

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