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

📄 sdrv_functions.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       28/Dec/106  14:32:09 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  large                                               #
#       Source file   =  d:\case_i_d90f\drv\ui_ssd1332\sdrv\sdrv_functions.c #
#       List file     =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\list\sdrv_functions.lst#
#       Object file   =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\obj\sdrv_functions.r01#
#       ASM file      =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\list\sdrv_functions.s01#
#       Command line  =  -v0 -ml -uu                                         #
#                        -OD:\case_i_d90f\drv\Ui_SSD1332\UI_SSD13\Obj\ -e    #
#                        -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG        #
#                        -LD:\case_i_d90f\drv\Ui_SSD1332\UI_SSD13\List\ -q   #
#                        -t8 -AD:\case_i_d90f\drv\Ui_SSD1332\UI_SSD13\List\  #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        -Id:\case_i_d90f\drv\Ui_SSD1332\inc\                #
#                        D:\CASE_I_D90F\DRV\UI_SSD1332\SDRV\sdrv_functions.c #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_functions(16)
   \   0000                    RSEG    UI_RCODE(0)
   \   0000                    EXTERN  AsciiSelect
   \   0000                    PUBLIC  CheckCharMode
   \   0000                    PUBLIC  CheckDisplaySpace
   \   0000                    EXTERN  PutCharErrFlag
   \   0000                    EXTERN  region
   \   0000                    EXTERN  region_win
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    EXTERN  ?C_S_SWITCH_L06
   \   0000                    RSEG    UI_RCODE
   \   0000            CheckCharMode:
      1          /*
      2          ********************************************************************************
      3          *                       ACTOS
      4          *                  ui dirver show picture
      5          *
      6          *                (c) Copyright 2002-2003, Actions Co,Ld.
      7          *                        All Right Reserved
      8          *
      9          * File   : Sdrv_functions.c
     10          * By     : Rcmai
     11          * Version: 1> v1.00     first version     10/17/2003 10:46PM
     12          ********************************************************************************
     13          */
     14          #include "display.h"
     15          #include "Drv_S6B33B0A.h"
     16          
     17          #pragma codeseg(UI_RCODE)
     18          
     19          
     20          ////*******************************************************************************/
     21          ///*
     22          //** FUNCTION:     CheckCharMode
     23          //**
     24          //** Description:  检测字符的模式
     25          //**
     26          //**  input
     27          //**     code: 字的内码
     28          //**
     29          //**  output
     30          //**     == CharMode1616: 汉字
     31          //**     == CharMode0816: 大ASCII
     32          //**     == CharMode0608: 小ASCII
     33          //********************************************************************************/
     34          non_banked char CheckCharMode(int code)
     35          {
   \   0000  D5                PUSH    DE
     36              //*如下动作主要是取 int code 的高8位来作比较(int 型参数是以 de 传送的,*
     37              //*    也就是要用d的值来作比较),用如下指令可使编译器优化成不用移位而  *
     38              //*    直接使用d的值来作比较。可省去不少时间及代码空间。               *
     39              //if ((unsigned char)((unsigned int)code>>8) >= FirstSectionCode)
     40          
     41                  //根据 code 和 AsciiSelect 的值来确定 字体为何?
     42          
     43              if ((unsigned char)code >= FirstSectionCode)
   \   0001  7B                LD      A,E
   \   0002  FEA1              CP      161
   \   0004  3804              JR      C,?0001
   \   0006            ?0000:
     44              {
     45                  return CharMode1616;//汉字
   \   0006  3E02              LD      A,2
     46              }
   \   0008  1808              JR      ?0004
   \   000A            ?0001:
     47              else if (AsciiSelect == FONT_TYPE_SMALL)
   \   000A  3A0000            LD      A,(AsciiSelect)
   \   000D  B7                OR      A
   \   000E  2802              JR      Z,?0004
   \   0010            ?0002:
     48              {
     49                  return CharMode0608;//小字体ASCII
     50              }
   \   0010            ?0003:
     51              return CharMode0816;//大字体ASCII
   \   0010  3E01              LD      A,1
     52          }
   \   0012            ?0004:
   \   0012  E1                POP     HL
   \   0013  C9                RET
   \   0014            CheckDisplaySpace:
     53          //================================================================================
     54          
     55          
     56          ////*******************************************************************************/
     57          ///*
     58          //** FUNCTION:     non_banked bool CheckDisplaySpace
     59          //**
     60          //** Description:  检测屏幕空间是否满足显示要求,如超出范围则报错
     61          //**
     62          //**  input
     63          //**     codemod: 点阵的模式
     64          //**
     65          //**  output
     66          //**     True: 屏幕空间能满足显示要求
     67          //**     False: 屏幕空间不能满足显示要求
     68          //********************************************************************************/
     69          
     70          non_banked bool CheckDisplaySpace(char codemod)
     71          {    
   \   0014  C5                PUSH    BC
   \   0015  D5                PUSH    DE
     72              switch(codemod)
   \   0016  CD0000            CALL    ?C_S_SWITCH_L06
   \   0019  00                DEFB    0
   \   001A  0400              DEFW    4
   \   001C  4A01              DEFW    ?0026
   \   001E  2600              DEFW    ?0006
   \   0020  6C00              DEFW    ?0011
   \   0022  B200              DEFW    ?0016
   \   0024  F700              DEFW    ?0021
   \   0026            ?0006:
     73              {    
     74              case CharMode0608://06*08点阵模式(ascii小字体)
     75                  // region.x [0 ~ Displaylength-1] 
     76                  // region.y [0 ~ Displayhight-1] 
     77                  if (region.x+ASCII_SMALL_WIDTH_DEF > region_win.x+region_win.width)
   \   0026  ED4B0000          LD      BC,(region)
   \   002A  0600              LD      B,0
   \   002C  210600            LD      HL,6
   \   002F  09                ADD     HL,BC
   \   0030  4D                LD      C,L
   \   0031  44                LD      B,H
   \   0032  ED5B0200          LD      DE,(region_win+2)
   \   0036  1600              LD      D,0
   \   0038  2A0000            LD      HL,(region_win)
   \   003B  62                LD      H,D
   \   003C  19                ADD     HL,DE
   \   003D  F680              OR      128
   \   003F  ED42              SBC     HL,BC
   \   0041  E24500            JP      PO,?0050
   \   0044  AC                XOR     H
   \   0045            ?0050:
   \   0045  FA1D01            JP      M,?0068
   \   0048            ?0007:
     78                  {
     79                      DUMP(RESULT_PUTCHAR_X_ERR);
     80                      PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
     81                      return FALSE;
     82                  }
   \   0048            ?0008:
     83                  if (region.y+ASCII_SMALL_HEIGHT_DEF > region_win.y+region_win.height)
   \   0048  ED4B0100          LD      BC,(region+1)
   \   004C  42                LD      B,D
   \   004D  210800            LD      HL,8
   \   0050  09                ADD     HL,BC
   \   0051  4D                LD      C,L
   \   0052  44                LD      B,H
   \   0053  ED5B0300          LD      DE,(region_win+3)
   \   0057  1600              LD      D,0
   \   0059  2A0100            LD      HL,(region_win+1)
   \   005C  62                LD      H,D
   \   005D  19                ADD     HL,DE
   \   005E  F680              OR      128
   \   0060  ED42              SBC     HL,BC
   \   0062  E26600            JP      PO,?0051
   \   0065  AC                XOR     H
   \   0066            ?0051:
   \   0066  F25201            JP      P,?0005
   \   0069            ?0009:
     84                  {
     85                      DUMP(RESULT_PUTCHAR_Y_ERR);
     86                      PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
   \   0069  C34601            JP      ?0069
     87                      return FALSE;
     88                  }                
   \   006C            ?0010:
     89                  break;
   \   006C            ?0011:
     90           
     91              case CharMode0816://08*16点阵模式(ascii大字体)
     92                  if (region.x+ASCII_LARGE_WIDTH_DEF > region_win.x+region_win.width)
   \   006C  ED4B0000          LD      BC,(region)
   \   0070  0600              LD      B,0
   \   0072  210800            LD      HL,8

⌨️ 快捷键说明

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