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

📄 sdrv_textoutrect.lst

📁 一种彩屏驱动以及画点,填充图片和填充数据的一些程序
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/May/107  10:54:39 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  large                                               #
#       Source file   =  d:\case_i_d913f\drv\ui_ssd1332\sdrv\sdrv_textoutrect.c#
#       List file     =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\list\sdrv_textoutrect.lst#
#       Object file   =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\obj\sdrv_textoutrect.r01#
#       ASM file      =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_r\list\sdrv_textoutrect.s01#
#       Command line  =  -v0 -ml -uu                                         #
#                        -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\Obj\    #
#                        -e -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG     #
#                        -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\List\   #
#                        -q -t8                                              #
#                        -AD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_R\List\   #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        -Id:\case_i_d913f\drv\ui_ssd1332\inc\               #
#                        d:\case_i_d913f\DRV\UI_SSD1332\SDRV\sdrv_textoutrect.c #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_textoutrect(16)
   \   0000                    RSEG    BBC_PUTS(0)
   \   0000                    EXTERN  BAPI_PutS
   \   0000                    EXTERN  PutCharErrFlag
   \   0000                    PUBLIC  Sdrv_TextOutRect
   \   0000                    EXTERN  StrHeight
   \   0000                    EXTERN  region
   \   0000                    EXTERN  region_win
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    RSEG    BBC_PUTS
   \   0000            Sdrv_TextOutRect:
      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_TextOutRect.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(BBS_PUTS)
     18          #pragma memory=default
     19          
     20          #pragma memory=dataseg(BBD_PUTS)
     21          #pragma memory=default
     22          
     23          #pragma codeseg(BBC_PUTS)
     24          
     25          ////*******************************************************************************/
     26          ///*   non_banked void Sdrv_TextOutRect(region_t * region, char *str);
     27          //** FUNCTION:     Sdrv_TextOutRect
     28          //**
     29          //** Description:  在指定的区域上输出一个字符串,如串的长度超过区域则自动换行
     30          //                      直到字符结束或区域用完
     31          //**  input
     32          //**     region_t * TORregion: 指定输出字符的区域 ; 
     33          //**     strlen: 字符串首址
     34          //**
     35          //**  output
     36          //**     none
     37          //********************************************************************************/
     38          non_banked void Sdrv_TextOutRect(region_t * TORregion, char *str)
     39          {
   \   0000  DDE5              PUSH    IX
   \   0002  C5                PUSH    BC
   \   0003  D5                PUSH    DE
   \   0004  F5                PUSH    AF
   \   0005  F5                PUSH    AF
     40              char *str_tmp;//记录当前输出到的字符首址
     41              region_t oldregion_bak;//备份原来的窗口值
     42          
     43              oldregion_bak = region_win;
   \   0006  210000            LD      HL,0
   \   0009  39                ADD     HL,SP
   \   000A  EB                EX      DE,HL
   \   000B  210000            LD      HL,region_win
   \   000E  010400            LD      BC,4
   \   0011  EDB0              LDIR
     44          
     45              //设置输出窗口
     46              region_win = *TORregion;
   \   0013  110000            LD      DE,region_win
   \   0016  210400            LD      HL,4
   \   0019  39                ADD     HL,SP
   \   001A  46                LD      B,(HL)
   \   001B  23                INC     HL
   \   001C  66                LD      H,(HL)
   \   001D  68                LD      L,B
   \   001E  010400            LD      BC,4
   \   0021  EDB0              LDIR
     47          
     48              //
     49              str_tmp = str;
   \   0023  210600            LD      HL,6
   \   0026  39                ADD     HL,SP
   \   0027  46                LD      B,(HL)
   \   0028  23                INC     HL
   \   0029  66                LD      H,(HL)
   \   002A  68                LD      L,B
   \   002B  E5                PUSH    HL
   \   002C  DDE1              POP     IX
     50          
     51              //设置输出字符串的起点
     52              region.x = region_win.x;
   \   002E  3A0000            LD      A,(region_win)
   \   0031  320000            LD      (region),A
     53              region.y = region_win.y;
   \   0034  3A0100            LD      A,(region_win+1)
   \   0037  320100            LD      (region+1),A
   \   003A            ?0002:
     54              do
     55              {
     56                  str_tmp = BAPI_PutS(str_tmp, -1);
   \   003A  0EFF              LD      C,255
   \   003C  DDE5              PUSH    IX
   \   003E  D1                POP     DE
   \   003F  CD0000            CALL    BAPI_PutS
   \   0042  E5                PUSH    HL
   \   0043  DDE1              POP     IX
     57                  region.x = region_win.x;    //回到区域首列
   \   0045  3A0000            LD      A,(region_win)
   \   0048  320000            LD      (region),A
     58                  region.y += StrHeight;      //加刚才那一行的高度       
   \   004B  3A0000            LD      A,(StrHeight)
   \   004E  47                LD      B,A
   \   004F  3A0100            LD      A,(region+1)
   \   0052  80                ADD     A,B
   \   0053  320100            LD      (region+1),A
     59              }while(PutCharErrFlag == RESULT_PUTCHAR_X_ERR);//x轴超限,要回到下一行
   \   0056  3A0000            LD      A,(PutCharErrFlag)
   \   0059  3D                DEC     A
   \   005A  28DE              JR      Z,?0002
   \   005C            ?0000:
     60              region_win = oldregion_bak;//恢复原来的窗口
   \   005C  110000            LD      DE,region_win
   \   005F  210000            LD      HL,0
   \   0062  39                ADD     HL,SP
   \   0063  010400            LD      BC,4
   \   0066  EDB0              LDIR
     61              return;
     62          }
   \   0068  E1                POP     HL
   \   0069  E1                POP     HL
   \   006A  E1                POP     HL
   \   006B  E1                POP     HL
   \   006C  DDE1              POP     IX
   \   006E  C9                RET
   \   006F                    END

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

⌨️ 快捷键说明

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