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

📄 ap_common.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:28 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ap_common.c                #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ap_common.lst       #
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ap_common.r01        #
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ap_common.s01       #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w  #
#                        -gA -z9 -RCODE -r0 -DNAPDEBUG                       #
#                        -LD:\case_i_d90f\ap\ap_music\List\ -q -t8           #
#                        -AD:\case_i_d90f\ap\ap_music\List\                  #
#                        -ND:\case_i_d90f\ap\ap_music\List\ -X               #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\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  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_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_PARM_DIRECT_L09
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   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          //请不要把这个变量定义在非IDATA0 段,否则不能初始化
     38          BOOL ui_auto_update=TRUE;    //是否自动刷新屏幕
     39          BOOL ui_auto_select=TRUE;    //是否自动确认
     40          BOOL ui_run_realtime=FALSE;    //控件跑实时模式
     41          
     42          /*
     43          ********************************************************************************
     44          * Description : 打开资源文件
     45          *
     46          * Arguments   : filename, 资源文件名字
     47          *
     48          * Returns     : 成功,文件指针
     49                  失败, NULL
     50          *
     51          * Notes       :
     52          *
     53          ********************************************************************************
     54          */
     55          SD_FILE *ResOpen(const char * filename)
     56          {    
   \   0000  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
     57                  //open res file
     58                  res_fp = SD_FOpen(filename, 0);
   \   0003  0E00              LD      C,0
   \   0005  CD0000            CALL    LWRD SD_FOpen
   \   0008  220000            LD      (res_fp),HL
     59                  if(res_fp == NULL ) return NULL;
   \   000B  7D                LD      A,L
   \   000C  B4                OR      H
   \   000D  282E              JR      Z,?0019
   \   000F            ?0002:
   \   000F            ?0003:
     60              
     61              //check magic "RES 0x19"
     62              SD_FRead(res_fp, &res_head, sizeof(res_head));
   \   000F  211000            LD      HL,16
   \   0012  E5                PUSH    HL
   \   0013  010200            LD      BC,res_head
   \   0016  CD4B00            CALL    LWRD ?0021
   \   0019  F1                POP     AF
     63              if( res_head.magic[0] != 'R' || 
     64                  res_head.magic[1] != 'E' ||
     65                  res_head.magic[2] != 'S' ||
     66                  res_head.magic[3] != 0x19 )
   \   001A  3A0200            LD      A,(res_head)
   \   001D  FE52              CP      82
   \   001F  2015              JR      NZ,?0006
   \   0021  3A0300            LD      A,(res_head+1)
   \   0024  FE45              CP      69
   \   0026  200E              JR      NZ,?0006
   \   0028  3A0400            LD      A,(res_head+2)
   \   002B  FE53              CP      83
   \   002D  2007              JR      NZ,?0006
   \   002F  3A0500            LD      A,(res_head+3)
   \   0032  FE19              CP      25
   \   0034  280C              JR      Z,?0005
   \   0036            ?0006:
   \   0036            ?0007:
   \   0036            ?0004:
     67              {
     68                  SD_FClose(res_fp);
   \   0036  ED5B0000          LD      DE,(res_fp)
   \   003A  CD0000            CALL    LWRD SD_FClose
     69                  return NULL;
   \   003D            ?0019:
   \   003D  210000            LD      HL,0
     70              }
   \   0040  1803              JR      ?0008
   \   0042            ?0005:
     71          
     72              //check count
     73              ASSERT(res_head.counts == UIID_MAX);
     74          
     75              //return ok
     76              return res_fp;    
   \   0042  2A0000            LD      HL,(res_fp)
     77          }
   \   0045            ?0008:
   \   0045  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0048            ?0022:
   \   0048  011200            LD      BC,res_entry
   \   004B            ?0021:
   \   004B  ED5B0000          LD      DE,(res_fp)
   \   004F  C30000            JP      LWRD SD_FRead
   \   0052            ResClose:
     78          
     79          /*
     80          ********************************************************************************
     81          * Description : 关闭资源文件
     82          *
     83          * Arguments   :
     84          *
     85          * Returns     :
     86          *
     87          * Notes       :
     88          *
     89          ********************************************************************************
     90          */
     91          void ResClose(const SD_FILE *fp)
     92          {
   \   0052  D5                PUSH    DE
     93              SD_FClose(fp);
   \   0053  CD0000            CALL    LWRD SD_FClose
     94          }
   \   0056  E1                POP     HL
   \   0057  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   005A            ResShowPic:
     95          
     96          /*
     97          ********************************************************************************
     98          * Description : 在指定位置显示图形
     99          *
    100          * Arguments   : id, 资源代号
    101                  x,y, 屏幕坐标
    102          *
    103          * Returns     : 成功, 1
    104                  失败, 0
    105          *
    106          * Notes       :
    107          *
    108          ********************************************************************************
    109          */
    110          int ResShowPic(WORD id, uchar x, uchar y)
    111          {
   \   005A  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   005D  FCFF              DEFW    65532
    112              WORD buf[2];    //buffer for sd read
    113          
    114              ASSERT(id <= UIID_MAX);
    115              
    116              //读entry
    117              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   005F  CDDA00            CALL    LWRD ?0023
   \   0062  C5                PUSH    BC
   \   0063  E5                PUSH    HL
   \   0064  CDE800            CALL    LWRD ?0024
   \   0067  E1                POP     HL
   \   0068  E1                POP     HL

⌨️ 快捷键说明

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