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

📄 sdrv_rectfill.lst

📁 MP3 整个 SDK
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       28/Dec/106  14:32:06 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  large                                               #
#       Source file   =  d:\case_i_d90f\drv\ui_ssd1332\sdrv\sdrv_rectfill.c  #
#       List file     =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\list\sdrv_rectfill.lst#
#       Object file   =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\obj\sdrv_rectfill.r01#
#       ASM file      =  d:\case_i_d90f\drv\ui_ssd1332\ui_ssd13\list\sdrv_rectfill.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_RectFill.c  #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_rectfill(16)
   \   0000                    RSEG    BAC_DW1(0)
   \   0000                    EXTERN  CheckDisplaySpace
   \   0000                    EXTERN  DisplayBuffer
   \   0000                    EXTERN  Hdrv_BuffDataTrans
   \   0000                    EXTERN  Hdrv_SetWindow
   \   0000                    EXTERN  RectBuffFillColor
   \   0000                    PUBLIC  Sdrv_FillRect
   \   0000                    EXTERN  region
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    RSEG    BAC_DW1
   \   0000            Sdrv_FillRect:
      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   : FillRect.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 memory=constseg(BAS_DW1)
     18          #pragma memory=default
     19          
     20          #pragma memory=dataseg(BAD_DW1)
     21          //SD_RW sdrw;
     22          //extern  unsigned char BufPage;
     23          #pragma memory=default
     24          
     25          #pragma codeseg(BAC_DW1)
     26          
     27          ////*******************************************************************************/
     28          ///* 把指定区域填充成画笔颜色
     29          //** FUNCTION:     Sdrv_FillRect
     30          //**
     31          //** Description:  
     32          //**
     33          //**  input
     34          //**        region_t * Fillregion:要填充的区域 
     35          //**        
     36          //**  output
     37          //**     none
     38          //********************************************************************************/
     39          
     40          void Sdrv_FillRect (region_t * Fillregion)
     41          {
   \   0000  C5                PUSH    BC
   \   0001  DDE5              PUSH    IX
   \   0003  D5                PUSH    DE
     42              unsigned int pixelcnt;
     43              region = *Fillregion;
   \   0004  110000            LD      DE,region
   \   0007  210000            LD      HL,0
   \   000A  39                ADD     HL,SP
   \   000B  46                LD      B,(HL)
   \   000C  23                INC     HL
   \   000D  66                LD      H,(HL)
   \   000E  68                LD      L,B
   \   000F  010400            LD      BC,4
   \   0012  EDB0              LDIR
     44          
     45              if ( (region.x > Displaylength-1)
     46                      || (region.y > Displayhight-1) )
   \   0014  3A0000            LD      A,(region)
   \   0017  47                LD      B,A
   \   0018  3E7F              LD      A,127
   \   001A  B8                CP      B
   \   001B  385C              JR      C,?0005
   \   001D  3A0100            LD      A,(region+1)
   \   0020  47                LD      B,A
   \   0021  3E9F              LD      A,159
   \   0023  B8                CP      B
   \   0024  3853              JR      C,?0005
   \   0026            ?0002:
   \   0026            ?0003:
   \   0026            ?0000:
     47              {
     48                  return; //坐标超出,退出
     49              }     
   \   0026            ?0001:
     50          
     51              if (CheckDisplaySpace(PicDisMode)) //检测显示区域是否超出
   \   0026  1E03              LD      E,3
   \   0028  CD0000            CALL    CheckDisplaySpace
   \   002B  B7                OR      A
   \   002C  284B              JR      Z,?0005
   \   002E            ?0004:
     52              {
     53                  Hdrv_SetWindow(&region);//设定区域 //设定 要填入数据的 起始地址 和 结束地址
   \   002E  110000            LD      DE,region
   \   0031  CD0000            CALL    Hdrv_SetWindow
     54                  pixelcnt = region.width * region.height;
   \   0034  ED4B0300          LD      BC,(region+3)
   \   0038  0600              LD      B,0
   \   003A  ED5B0200          LD      DE,(region+2)
   \   003E  50                LD      D,B
   \   003F  CD0000            CALL    ?S_MUL_L02
   \   0042  D5                PUSH    DE
   \   0043  DDE1              POP     IX
   \   0045            ?0007:
     55                  while(pixelcnt > DisplayBufLen/2)
   \   0045  DDE5              PUSH    IX
   \   0047  C1                POP     BC
   \   0048  210001            LD      HL,256
   \   004B  A7                AND     A
   \   004C  ED42              SBC     HL,BC
   \   004E  3017              JR      NC,?0006
   \   0050            ?0008:
     56                  {
     57                      //找出整个PAGE的送出
     58                      RectBuffFillColor(DisplayBufLen/2);
   \   0050  110001            LD      DE,256
   \   0053  CD0000            CALL    RectBuffFillColor
     59                      Hdrv_BuffDataTrans(DisplayBuffer, DisplayBufLen);//把暂时显存区DisplayBuffer里面的数据送到LCM
   \   0056  010002            LD      BC,512
   \   0059  110000            LD      DE,DisplayBuffer
   \   005C  CD0000            CALL    Hdrv_BuffDataTrans
     60                      //这里只管 填入数据,不管地方,因为在这之前 Hdrv_SetWindow 已经设定好了起始位置地点
     61                      
     62                      pixelcnt = pixelcnt - DisplayBufLen/2;
   \   005F  3EFF              LD      A,255
   \   0061  DD84              ADD     A,IXH
   \   0063  DD67              LD      IXH,A
   \   0065  18DE              JR      ?0007
   \   0067            ?0006:
     63                  }
     64                  //把剩余的数据送出
     65                  RectBuffFillColor(pixelcnt);
   \   0067  DDE5              PUSH    IX
   \   0069  D1                POP     DE
   \   006A  CD0000            CALL    RectBuffFillColor
     66                  Hdrv_BuffDataTrans(DisplayBuffer, pixelcnt*2);//把暂时显存区的数据送到LCM                
   \   006D  DDE5              PUSH    IX
   \   006F  E1                POP     HL
   \   0070  29                ADD     HL,HL
   \   0071  4D                LD      C,L
   \   0072  44                LD      B,H
   \   0073  110000            LD      DE,DisplayBuffer
   \   0076  CD0000            CALL    Hdrv_BuffDataTrans
   \   0079            ?0005:
     67              }        
     68              return;
     69          }
   \   0079            ?0009:
   \   0079  E1                POP     HL
   \   007A  DDE1              POP     IX
   \   007C  C1                POP     BC
   \   007D  C9                RET
     70          
   \   007E                    END

Errors: none
Warnings: none
Code size: 126
Constant size: 0
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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