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

📄 sdrv_puts_thai.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:30:46 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  large                                               #
#       Source file   =  d:\case_i_d913f\drv\ui_ssd1332\sdrv\sdrv_puts_thai.c#
#       List file     =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_puts_thai.lst#
#       Object file   =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\obj\sdrv_puts_thai.r01#
#       ASM file      =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_puts_thai.s01#
#       Command line  =  -v0 -ml -uu                                         #
#                        -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_H\Obj\    #
#                        -e -K -w -gA -s9 -RCODE -r0 -DIC3951 -DNAPDEBUG     #
#                        -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_H\List\   #
#                        -q -t8                                              #
#                        -AD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_H\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_puts_thai.c #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_puts_thai(16)
   \   0000                    RSEG    BBC_PUTS(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  AsciiSelect
   \   0000                    EXTERN  Sdrv_PutChar
   \   0000                    PUBLIC  Sdrv_PutS
   \   0000                    PUBLIC  StrHeight
   \   0000                    PUBLIC  next_thai_flag
   \   0000                    EXTERN  region
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    RSEG    BBC_PUTS
   \   0000            Sdrv_PutS:
      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_PutS.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          char next_thai_flag = 1;
     18          extern char thai_flag;
     19          
     20          #pragma memory=constseg(BBS_PUTS)
     21          #pragma memory=default
     22          
     23          #pragma memory=dataseg(BBD_PUTS)
     24          #pragma memory=default
     25          
     26          #pragma codeseg(BBC_PUTS)
     27          
     28          //BYTE lineNum_sav;//行号记录
     29          
     30          //如果一行都是small ascii则高度为8(默认),如有一行中有一个是汉字或是 large 模式 ascii
     31          // 则高度都为 16 
     32          BYTE StrHeight = ASCII_SMALL_HEIGHT_DEF;//一行字的高度
     33          
     34          ////*******************************************************************************/
     35          ///*
     36          //** FUNCTION:     Sdrv_PutS
     37          //**
     38          //** Description:  在屏幕上输出一个字符串,如串的长度超过屏幕,则多出部分不显示
     39          //**                   指针停在最后一个能显示的字的下一个字符左上角,碰到回车或
     40          //**                   串尾时退出,碰到换行时从下一行开始显示
     41          //**  input
     42          //**     str: 字符串首址 ; 
     43          //**     strlen: 字符串的长度
     44          //**
     45          //**  output
     46          //**     none
     47          //********************************************************************************/
     48          non_banked char *Sdrv_PutS(const char *str, signed char strlen)
     49          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  C5                PUSH    BC
   \   0005  F5                PUSH    AF
   \   0006  F5                PUSH    AF
   \   0007  F5                PUSH    AF
   \   0008  D5                PUSH    DE
   \   0009  DDE1              POP     IX
     50              int code;
     51              char result;
     52              char *lastcharpt;//记录上一个字符的指针        
     53              BYTE lineNum_sav,rowNum_sav;//行号记录
     54          
     55              lineNum_sav = region.y;
   \   000B  3A0100            LD      A,(region+1)
   \   000E  210000            LD      HL,0
   \   0011  39                ADD     HL,SP
   \   0012  77                LD      (HL),A
     56              rowNum_sav = region.x;
   \   0013  23                INC     HL
   \   0014  3A0000            LD      A,(region)
   \   0017  77                LD      (HL),A
     57          /*
     58              //判断要输出的行的高度    
     59              if (AsciiSelect == FONT_TYPE_SMALL)
     60              {
     61                  StrHeight = CHINESE_HEIGHT_DEF;//+2;//一行字符的高度
     62              }
     63              else
     64              {
     65                  StrHeight = CHINESE_HEIGHT_DEF;//+2;//一行字符的高度
     66              }
     67          */
     68                  //判断要输出的行的高度    
     69              if (AsciiSelect == FONT_TYPE_SMALL)
   \   0018            ?0000:
     70              {
     71                  StrHeight = CHINESE_HEIGHT_DEF;//一行字符的高度
     72              }
     73              else
   \   0018            ?0001:
     74              {
     75                  StrHeight = CHINESE_HEIGHT_DEF;//一行字符的高度
   \   0018  3E10              LD      A,16
   \   001A  320100            LD      (StrHeight),A
   \   001D            ?0002:
   \   001D            ?0004:
     76              }
     77          
     78          
     79          
     80              while ( (*str != '\r')      //碰到回车时退出
     81                      && (*str != '\0')   //碰到结束符时退出
     82                      && (strlen != NULL) )  //碰到字符长度为0时退出      
   \   001D  DD7E00            LD      A,(IX+0)
   \   0020  FE0D              CP      13
   \   0022  CAB300            JP      Z,?0003
   \   0025  AF                XOR     A
   \   0026  DDB600            OR      (IX+0)
   \   0029  CAB300            JP      Z,?0003
   \   002C  210600            LD      HL,6
   \   002F  39                ADD     HL,SP
   \   0030  AF                XOR     A
   \   0031  B6                OR      (HL)
   \   0032  287F              JR      Z,?0003
   \   0034            ?0007:
   \   0034            ?0006:
   \   0034            ?0005:
     83              {
     84                  lastcharpt = str;
   \   0034  DDE5              PUSH    IX
   \   0036  FDE1              POP     IY
     85                  //下面是碰到换行符时要作换行处理
     86                  if (*str == '\n')
   \   0038  DD7E00            LD      A,(IX+0)
   \   003B  FE0A              CP      10
   \   003D  201C              JR      NZ,?0012

⌨️ 快捷键说明

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