ui_getjapenese.lst
来自「一种彩屏驱动以及画点,填充图片和填充数据的一些程序」· LST 代码 · 共 219 行
LST
219 行
################################################################################
# #
# IAR Systems Z80/64180 Assembler V3.03A/WIN 18/May/107 10:54:37 #
# #
# Target option = z80 #
# Source file = d:\case_i_d913f\drv\ui_ssd1332\sdrv\ui_getjapenese.msa#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_jp\list\ui_getjapenese.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13_jp\obj\ui_getjapenese.r01#
# Command line = -v0 -uu #
# -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_JP\Obj\ #
# -s+ -M<> -w+ -r -DIC3951 -DNAPDEBUG #
# -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13_JP\List\ #
# -t8 -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\UI_GetJapenese.msa #
# #
# (c) Copyright IAR Systems 1996 #
################################################################################
1 000000 /*
2 000000 ****************************************************
****************************
3 000000 * ACTOS
4 000000 * ui dirver show picture
5 000000 *
6 000000 * (c) Copyright 2002-2003, Actions Co
,Ld.
7 000000 * All Right Reserved
8 000000 *
9 000000 * File : UI_GetFontPoint.msa
10 000000 * By : Chliang
11 000000 * Version: 1> v1.00 first version 12/03/2003
10:46PM
12 000000 ****************************************************
****************************
13 000000 */
14 000000 #include "display.h"
15 000000 #include "Drv_S6B33B0A.h"
16 000000
17 000000 module Sdrv_GetFontPoint
18 000000 // public sUI_GetFontPoint
19 000000 public Sdrv_GetFontPoint
20 000000 extern AsciiSelect
21 000000 extern AsciiFontLibAddr
22 000000 extern FontLibAddr
23 000000 extern CharPointBuffer
24 000000 extern SD_RWStruct
25 000000
26 000000 rseg UI_RCODE
27 000000
28 000000
29 000000 //**************************************************
******/
30 000000 /*
31 000000 ** FUNCTION: GetCharPoint
32 000000 **
33 000000 ** PURPOSE: Get Char Point Info by dma2
34 000000 **
35 000000 ** PARAMETERS:
36 000000 ** input
37 000000 ** de=区位码
38 000000 ** bc=输出数据的存放地址
39 000000 ** output
40 000000 ** none
41 000000 ** DESCRIPTION:
42 000000 //**************************************************
******/
43 000000
44 000000 Sdrv_GetFontPoint:
45 000000 C5 push bc
46 000001 D5 push de
47 000002 ED43.... ld (SD_RWStruct+5),bc
48 000006 3E08 ld a,0x08
49 000008 CB70 bit 6,b //bc是否大于4000
h
50 00000A 2804 jr z,_buffer_in_zram
51 00000C // dec a //0x07 fr
am buffer
52 00000C DB05 in a,(05h)
53 00000E E60F and 0fh
54 000010 _buffer_in_zram:
55 000010 32.... ld (SD_RWStruct+7),a
56 000013 GetChineseCharPoint:
57 000013 7B ld a,e //区码
58 000014 FE81 cp 81h //日文字库开始的位置
59 000016 3021 jr nc,_not_ascii
60 000018 _is_ascii:
61 000018 3A.... ld a,(AsciiSelect)
62 00001B FE04 cp FONT_TYPE_LARGE
63 00001D 3802 jr c,lsUse0608Type
64 00001F 180A jr lsUse0816Type
65 000021 lsUse0608Type:
66 000021 AF xor a
67 000022 67 ld h,a
68 000023 6B ld l,e
69 000024 0603 ld b,03h // ahl=e*8
70 000026 CD.... call AHL_LeftShift //输入参数:b
,hl
71 000029 1846 jr MoveAsciiPointToBuffer
72 00002B lsUse0816Type:
73 00002B AF xor a
74 00002C 67 ld h,a
75 00002D 6B ld l,e
76 00002E 0604 ld b,04h // ahl=e*16
77 000030 CD.... call AHL_LeftShift //输入参数:b
,hl
78 000033 010008 ld bc,800h //0816Type A
SCII起始地址=800h
79 000036 09 add hl,bc
80 000037 1838 jr MoveAsciiPointToBuffer
81 000039
82 000039 _not_ascii:
83 000039 FE87 cp 0x87
84 00003B 3004 jr nc,Jump_Japenese_87
85 00003D
86 00003D //++++++++++ 0x81~~~~~~0x84 +++++++++++++++
87 00003D D681 sub 0x81
88 00003F 1821 jr japaneseret
89 000041 //call AddCountQuma
90 000041 //call AddCountWeima
91 000041 //xor a
92 000041 //ld b,5
93 000041 //call AHL_LeftShift
94 000041 //jp MoveFontPointToBuffer
95 000041
96 000041 Jump_Japenese_87:
97 000041 FEA0 cp 0xa0
98 000043 3004 jr nc,JP_Japenese_A0
99 000045
100 000045 //+++++++++ 0x87---0x9f ++++++++++++++++
101 000045 D681 sub 0x81 //
102 000047 1819 jr japaneseret
103 000049 //call AddCountQuma
104 000049 //call AddCountWeima
105 000049 //xor a
106 000049 //ld b,5
107 000049 //call AHL_LeftShift
108 000049 //jp MoveFontPointToBuffer
109 000049
110 000049 JP_Japenese_A0:
111 000049 FEE0 cp 0xe0
112 00004B 3003 jr nc,JP_Japenese_ED
113 00004D
114 00004D //++++++++ 0xa0---0xdf +++++++++++++++++++
115 00004D //++++++++ 该区没有位码 ++++++++++++++++++
116 00004D C3.... jp MovePointBufferEnd
117 000050
118 000050 JP_Japenese_ED:
119 000050 FEED cp 0xed
120 000052 3004 jr nc,JP_Japenese_FA
121 000054
122 000054 //+++++++++ 0xe0~~~~~~0xea ++++++++++++++++++
123 000054 D6C1 sub 0x81+0X40
124 000056 180A jr japaneseret
125 000058 //call AddCountQuma
126 000058 //call AddCountWeima
127 000058 //xor a
128 000058 //ld b,5
129 000058 //call AHL_LeftShift
130 000058 //jp MoveFontPointToBuffer
131 000058
132 000058 JP_Japenese_FA:
133 000058 FEFA cp 0xfa
134 00005A 3004 jr nc,Is_Japenese_FA
135 00005C
136 00005C //++++++++ 0xed~~~~~~~0xee ++++++++++++++++++
137 00005C D6C3 sub 0x81+4+0X40-2
138 00005E 1802 jr japaneseret
139 000060 //call AddCountQuma
140 000060 //call AddCountWeima
141 000060 //xor a
142 000060 //ld b,5
143 000060 //call AHL_LeftShift
144 000060 //jp MoveFontPointToBuffer
145 000060
146 000060 Is_Japenese_FA:
147 000060 D6CE sub 0x81+15+0X40-2
148 000062 japaneseret:
149 000062 CD.... call AddCountQuma
150 000065 CD.... call AddCountWeima
151 000068 AF xor a
152 000069 0605 ld b,5
153 00006B CD.... call AHL_LeftShift
154 00006E C3.... jp MoveFontPointToBuffer
155 000071 //--------------------------------------------------
156 000071 MoveAsciiPointToBuffer:
157 000071 ED5B.... ld de,(AsciiFontLibAddr)
158 000075 19 add hl,de
159 000076 22.... ld (SD_RWStruct),hl
160 000079 6F ld l,a
161 00007A 2600 ld h,0
162 00007C ED5B.... ld de,(AsciiFontLibAddr+2)
163 000080 ED5A adc hl,de
164 000082 22.... ld (SD_RWStruct+2),hl
165 000085 1814 jr MovePointToBuffer
166 000087 MoveFontPointToBuffer:
167 000087 ED5B.... ld de,(FontLibAddr)
168 00008B 19 add hl,de
169 00008C 22.... ld (SD_RWStruct),hl
170 00008F 6F ld l,a
171 000090 2600 ld h,0
172 000092 ED5B.... ld de,(FontLibAddr+2)
173 000096 ED5A adc hl,de
174 000098 22.... ld (SD_RWStruct+2),hl
175 00009B MovePointToBuffer:
176 00009B 11.... ld de,SD_RWStruct
177 00009E 012000 ld bc,32
178 0000A1 mSD_Read
178.1 0000A1 3E00 ld a,API_SD_Read
178.2 0000A3 CF rst RSTFastAPI
178.3 0000A4 endm
179 0000A4 MovePointBufferEnd:
180 0000A4 D1 pop de
181 0000A5 C1 pop bc
182 0000A6 C9 ret
183 0000A7 //--------------------------------------------------
-
184 0000A7 AddCountASCII: //算ICON地址,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?