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

📄 sdrv_charoutrect_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_charoutrect_thai.c#
#       List file     =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_charoutrect_thai.lst#
#       Object file   =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\obj\sdrv_charoutrect_thai.r01#
#       ASM file      =  d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_charoutrect_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_charoutrect_thai.c #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sdrv_charoutrect_thai(16)
   \   0000                    RSEG    BBC_PUTS(0)
   \   0000                    EXTERN  BlackCharToColor
   \   0000                    EXTERN  CharPointBuffer
   \   0000                    EXTERN  CheckCharMode
   \   0000                    EXTERN  DisplayBuffer
   \   0000                    EXTERN  Hdrv_BuffDataTrans
   \   0000                    EXTERN  Hdrv_SetDrawMode
   \   0000                    EXTERN  Hdrv_SetWindow
   \   0000                    EXTERN  PutCharErrFlag
   \   0000                    PUBLIC  Sdrv_CharOutRect
   \   0000                    EXTERN  Sdrv_GetFontPoint
   \   0000                    EXTERN  Sdrv_add_image
   \   0000                    EXTERN  Sdrv_check_symble
   \   0000                    EXTERN  next_thai_flag
   \   0000                    EXTERN  region
   \   0000                    EXTERN  ?CLZ80L_4_04_L00
   \   0000                    RSEG    BBC_PUTS
   \   0000            Sdrv_CharOutRect:
      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_charOutrect.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          extern  char next_thai_flag;
     18          extern  char thai_flag;
     19          
     20          //#pragma codeseg(UI_RCODE)
     21          
     22          #pragma memory=constseg(BBS_PUTS)
     23          #pragma memory=default
     24          
     25          #pragma memory=dataseg(BBD_PUTS)
     26          #pragma memory=default
     27          
     28          #pragma codeseg(BBC_PUTS)
     29          
     30          
     31          
     32          ////*******************************************************************************/
     33          ///*
     34          //** FUNCTION:     Sdrv_CharOutRect
     35          //**
     36          //** Description:  在指定的区域上打出一个字符,超出区域部分不显示,没有超出屏幕的部分将正常显示。
     37          //**
     38          //**  input
     39          //**     code: 字符的码值
     40          //**     CRregion: 要求输出的区域
     41          //**     colcnt:   要求从汉字的哪一列开始输出   
     42          //**  output
     43          //**     bool: 当指定列数超出该字的总列数时返回FALSE,否则返回TRUE
     44          //********************************************************************************/
     45          
     46          non_banked bool Sdrv_CharOutRect(int code,int nextcode,region_t *CRregion, BYTE colcnt)
     47          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  DD210000          LD      IX,0
   \   0008  DD39              ADD     IX,SP
   \   000A  C5                PUSH    BC
   \   000B  D5                PUSH    DE
   \   000C  F5                PUSH    AF
   \   000D  DD6E06            LD      L,(IX+6)
   \   0010  DD6607            LD      H,(IX+7)
   \   0013  E5                PUSH    HL
   \   0014  FDE1              POP     IY
     48              char charmode;
     49              bool putchar_result;
     50              char tmpwidth;
     51              ///-int i;
     52              ///-char *p1,*p2;
     53              
     54              if (CRregion->width == NULL)
   \   0016  FD7E02            LD      A,(IY+2)
   \   0019  B7                OR      A
   \   001A  CA0301            JP      Z,?0031
   \   001D            ?0000:
     55              {    
     56                  return FALSE;
     57              }      
   \   001D            ?0001:
     58          
     59          
     60              PutCharErrFlag = RESULT_PUTCHAR_OK; //默认为OK
   \   001D  AF                XOR     A
   \   001E  320000            LD      (PutCharErrFlag),A
     61              Hdrv_SetDrawMode(DrawModeV_def);    //把显示模式设置成竖向显示模式(与旧字库兼容)
   \   0021  110100            LD      DE,1
   \   0024  CD0000            CALL    Hdrv_SetDrawMode
     62              Sdrv_GetFontPoint(code, CharPointBuffer);//取点阵
   \   0027  010000            LD      BC,CharPointBuffer
   \   002A  DD5EFC            LD      E,(IX-4)
   \   002D  DD56FD            LD      D,(IX-3)
   \   0030  CD0000            CALL    Sdrv_GetFontPoint
     63              if(nextcode == 0xd1 || (nextcode >=0xd4 && nextcode<0xdb) ||(nextcode >=0xe7 && nextcode<0xef))
   \   0033  3ED1              LD      A,209
   \   0035  DDAEFE            XOR     (IX-2)
   \   0038  DDB6FF            OR      (IX-1)
   \   003B  2840              JR      Z,?0009
   \   003D  01D480            LD      BC,32980
   \   0040  DD6EFE            LD      L,(IX-2)
   \   0043  DD66FF            LD      H,(IX-1)
   \   0046  78                LD      A,B
   \   0047  AC                XOR     H
   \   0048  67                LD      H,A
   \   0049  ED42              SBC     HL,BC
   \   004B  3810              JR      C,?0007
   \   004D  01DB80            LD      BC,32987
   \   0050  DD6EFE            LD      L,(IX-2)
   \   0053  DD66FF            LD      H,(IX-1)
   \   0056  78                LD      A,B
   \   0057  AC                XOR     H
   \   0058  67                LD      H,A
   \   0059  ED42              SBC     HL,BC
   \   005B  3820              JR      C,?0009
   \   005D            ?0007:
   \   005D            ?0006:
   \   005D  01E780            LD      BC,32999
   \   0060  DD6EFE            LD      L,(IX-2)
   \   0063  DD66FF            LD      H,(IX-1)
   \   0066  78                LD      A,B
   \   0067  AC                XOR     H
   \   0068  67                LD      H,A
   \   0069  ED42              SBC     HL,BC
   \   006B  3813              JR      C,?0003
   \   006D  01EF80            LD      BC,33007
   \   0070  DD6EFE            LD      L,(IX-2)
   \   0073  DD66FF            LD      H,(IX-1)
   \   0076  78                LD      A,B
   \   0077  AC                XOR     H
   \   0078  67                LD      H,A
   \   0079  ED42              SBC     HL,BC
   \   007B  3003              JR      NC,?0003
   \   007D            ?0009:
   \   007D            ?0008:
   \   007D            ?0004:
   \   007D            ?0005:
   \   007D            ?0002:
     64                  next_thai_flag = 0;
   \   007D  AF                XOR     A
   \   007E  1802              JR      ?0028
     65              else
   \   0080            ?0003:
     66                  next_thai_flag = 1;   
   \   0080  3E01              LD      A,1
   \   0082            ?0028:
   \   0082  320000            LD      (next_thai_flag),A
   \   0085            ?0010:
     67              
     68              Sdrv_check_symble(code);
   \   0085  DD5EFC            LD      E,(IX-4)
   \   0088  CD0000            CALL    Sdrv_check_symble
     69              Sdrv_add_image();          //add by nik du
   \   008B  CD0000            CALL    Sdrv_add_image
     70           /*   
     71              if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
     72                  thai_flag = 0;
     73              else
     74                  thai_flag = 1; 
     75                      
     76              p1 = back_CharPointBuffer;
     77              p2 = CharPointBuffer;     
     78              
     79              if(thai_flag == 1)
     80              {
     81                  for(i=0;i<32;i++)
     82                  {
     83                      *p1++ = *p2++;
     84                  }        
     85              
     86                  if(next_thai_flag==0)
     87                     return TRUE;
     88              }
     89              else
     90              {
     91                  for(i=0;i<32;i++) 
     92                     *p2++ |= *p1++;
     93              }  
     94             */
     95              charmode = CheckCharMode(code);
   \   008E  DD5EFC            LD      E,(IX-4)
   \   0091  DD56FD            LD      D,(IX-3)
   \   0094  CD0000            CALL    CheckCharMode
     96              switch(charmode)

⌨️ 快捷键说明

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