📄 sdrv_common_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_common_thai.c#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_common_thai.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\obj\sdrv_common_thai.r01#
# ASM file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_h\list\sdrv_common_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_common_thai.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sdrv_common_thai(16)
\ 0000 RSEG UI_RCODE(0)
\ 0000 EXTERN CharPointBuffer
\ 0000 PUBLIC Sdrv_add_image
\ 0000 PUBLIC Sdrv_check_symble
\ 0000 EXTERN back_CharPointBuffer
\ 0000 EXTERN next_thai_flag
\ 0000 EXTERN thai_flag
\ 0000 EXTERN ?CLZ80L_4_04_L00
\ 0000 RSEG UI_RCODE
\ 0000 Sdrv_add_image:
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 ////*******************************************************************************/
23 ///*
24 //** FUNCTION: Sdrv_CharOutRect
25 //**
26 //** Description: 在指定的区域上打出一个字符,超出区域部分不显示,没有超出屏幕的部分将正常显示。
27 //**
28 //** input
29 //** code: 字符的码值
30 //** CRregion: 要求输出的区域
31 //** colcnt: 要求从汉字的哪一列开始输出
32 //** output
33 //** bool: 当指定列数超出该字的总列数时返回FALSE,否则返回TRUE
34 //********************************************************************************/
35
36 non_banked bool Sdrv_add_image(void)
37 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 FDE5 PUSH IY
\ 0004 DDE5 PUSH IX
38 int i;
39 char *p1,*p2;
40
41 p1 = back_CharPointBuffer;
\ 0006 FD210000 LD IY,back_CharPointBuffer
42 p2 = CharPointBuffer;
\ 000A DD210000 LD IX,CharPointBuffer
43 if(thai_flag == 1)
\ 000E 3A0000 LD A,(thai_flag)
\ 0011 3D DEC A
\ 0012 110000 LD DE,0
\ 0015 2023 JR NZ,?0001
\ 0017 ?0000:
44 {
45 for(i=0;i<32;i++)
\ 0017 ?0003:
\ 0017 012080 LD BC,32800
\ 001A 6B LD L,E
\ 001B 62 LD H,D
\ 001C 78 LD A,B
\ 001D AC XOR H
\ 001E 67 LD H,A
\ 001F ED42 SBC HL,BC
\ 0021 300D JR NC,?0002
\ 0023 ?0004:
46 {
47 *p1++ = *p2++;
\ 0023 DD4600 LD B,(IX+0)
\ 0026 FD7000 LD (IY+0),B
\ 0029 13 INC DE
\ 002A DD23 INC IX
\ 002C FD23 INC IY
\ 002E 18E7 JR ?0003
\ 0030 ?0002:
48 }
49
50 if(next_thai_flag==0)
\ 0030 3A0000 LD A,(next_thai_flag)
\ 0033 B7 OR A
\ 0034 2020 JR NZ,?0009
\ 0036 ?0006:
51 return TRUE;
\ 0036 3E01 LD A,1
52 }
\ 0038 181C JR ?0009
\ 003A ?0007:
53 else
\ 003A ?0001:
54 {
55 for(i=0;i<32;i++)
\ 003A ?0010:
\ 003A 012080 LD BC,32800
\ 003D 6B LD L,E
\ 003E 62 LD H,D
\ 003F 78 LD A,B
\ 0040 AC XOR H
\ 0041 67 LD H,A
\ 0042 ED42 SBC HL,BC
\ 0044 3010 JR NC,?0009
\ 0046 ?0011:
56 *p2++ |= *p1++;
\ 0046 DD7E00 LD A,(IX+0)
\ 0049 FDB600 OR (IY+0)
\ 004C DD7700 LD (IX+0),A
\ 004F 13 INC DE
57 }
\ 0050 DD23 INC IX
\ 0052 FD23 INC IY
\ 0054 18E4 JR ?0001
\ 0056 ?0009:
\ 0056 ?0008:
58 }
\ 0056 ?0013:
\ 0056 DDE1 POP IX
\ 0058 FDE1 POP IY
\ 005A D1 POP DE
\ 005B C1 POP BC
\ 005C C9 RET
\ 005D Sdrv_check_symble:
59
60 non_banked bool Sdrv_check_symble(unsigned char code)
61 {
62 if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
\ 005D 7B LD A,E
\ 005E FED1 CP 209
\ 0060 2810 JR Z,?0021
\ 0062 FED4 CP 212
\ 0064 3804 JR C,?0019
\ 0066 FEDB CP 219
\ 0068 3808 JR C,?0021
\ 006A ?0019:
\ 006A ?0018:
\ 006A FEE7 CP 231
\ 006C 3807 JR C,?0015
\ 006E FEEF CP 239
\ 0070 3003 JR NC,?0015
\ 0072 ?0021:
\ 0072 ?0020:
\ 0072 ?0016:
\ 0072 ?0017:
\ 0072 ?0014:
63 thai_flag = 0;
\ 0072 AF XOR A
\ 0073 1802 JR ?0024
64 else
\ 0075 ?0015:
65 thai_flag = 1;
\ 0075 3E01 LD A,1
\ 0077 ?0024:
\ 0077 320000 LD (thai_flag),A
\ 007A ?0022:
66 }
\ 007A C9 RET
67 /*
68
69 non_banked bool Sdrv_Set_next(unsigned char mode)
70 {
71 // if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
72 // thai_flag = 0;
73 // else
74 // thai_flag = 1;
75 next_thai_flag = mode;
76 }
77 */
\ 007B END
Errors: none
Warnings: none
Code size: 123
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -