📄 sdrv_putchar_thai.lst
字号:
##############################################################################
# #
# 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_putchar_thai.c#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_putchar_thai.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\obj\sdrv_putchar_thai.r01#
# ASM file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_putchar_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_putchar_thai.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sdrv_putchar_thai(16)
\ 0000 RSEG BBC_PUTS(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN BlackCharToColor
\ 0000 EXTERN CharPointBuffer
\ 0000 EXTERN CheckCharMode
\ 0000 EXTERN CheckDisplaySpace
\ 0000 EXTERN DisplayBuffer
\ 0000 EXTERN Hdrv_BuffDataTrans
\ 0000 EXTERN Hdrv_SetDrawMode
\ 0000 EXTERN Hdrv_SetWindow
\ 0000 EXTERN PutCharErrFlag
\ 0000 EXTERN Sdrv_GetFontPoint
\ 0000 PUBLIC Sdrv_PutChar
\ 0000 EXTERN Sdrv_add_image
\ 0000 EXTERN Sdrv_check_symble
\ 0000 EXTERN next_thai_flag
\ 0000 EXTERN region
\ 0000 PUBLIC thai_flag
\ 0000 EXTERN ?CLZ80L_4_04_L00
\ 0000 RSEG BBC_PUTS
\ 0000 Sdrv_PutChar:
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 : PutChar.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 extern char next_thai_flag;
19 char thai_flag=0;
20
21 #pragma memory=constseg(BBS_PUTS)
22 #pragma memory=default
23
24 #pragma memory=dataseg(BBD_PUTS)
25 #pragma memory=default
26
27 #pragma codeseg(BBC_PUTS)
28
29 //non_banked char CheckCharMode(int code);
30 //bool CheckDisplaySpace(char codemod);
31 ////*******************************************************************************/
32 ///*
33 //** FUNCTION: PutChar
34 //**
35 //** Description: 在屏幕上打出一个字符,并打完后当前指针自动跳到下一个汉字的左上角
36 //**
37 //** input
38 //** code: 字符的码值
39 //**
40 //** output
41 //** none
42 //********************************************************************************/
43 //extern non_banked char chech_symple(unsigned char code);
44 non_banked bool Sdrv_PutChar(int code)
45 {
\ 0000 C5 PUSH BC
\ 0001 DDE5 PUSH IX
\ 0003 F5 PUSH AF
\ 0004 D5 PUSH DE
\ 0005 DDE1 POP IX
46 char charmode;
47 bool putchar_result;
48 ///-int i;
49 ///-char *p1,*p2;
50 PutCharErrFlag = RESULT_PUTCHAR_OK; //默认为OK
\ 0007 AF XOR A
\ 0008 320000 LD (PutCharErrFlag),A
51 Hdrv_SetDrawMode(DrawModeV_def); //把显示模式设置成竖向显示模式(与旧字库兼容)
\ 000B 110100 LD DE,1
\ 000E CD0000 CALL Hdrv_SetDrawMode
52 Sdrv_GetFontPoint(code, CharPointBuffer);//取点阵
\ 0011 010000 LD BC,CharPointBuffer
\ 0014 DDE5 PUSH IX
\ 0016 D1 POP DE
\ 0017 CD0000 CALL Sdrv_GetFontPoint
53 /*
54 if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
55 thai_flag = 0;
56 else
57 thai_flag = 1;
58
59
60 p1 = back_CharPointBuffer;
61 p2 = CharPointBuffer;
62
63 if(thai_flag == 1)
64 {
65 for(i=0;i<32;i++)
66 {
67 *p1++ = *p2++;
68 }
69
70 if(next_thai_flag==0)
71 return TRUE;
72 }
73 else
74 {
75 for(i=0;i<32;i++)
76 *p2++ |= *p1++;
77 }
78 */
79
80 Sdrv_check_symble(code);
\ 001A DDE5 PUSH IX
\ 001C E1 POP HL
\ 001D 5D LD E,L
\ 001E CD0000 CALL Sdrv_check_symble
81 Sdrv_add_image();
\ 0021 CD0000 CALL Sdrv_add_image
82
83 charmode = CheckCharMode(code);
\ 0024 DDE5 PUSH IX
\ 0026 D1 POP DE
\ 0027 CD0000 CALL CheckCharMode
\ 002A 210100 LD HL,1
\ 002D 39 ADD HL,SP
\ 002E 77 LD (HL),A
84 putchar_result = CheckDisplaySpace(charmode);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -