📄 sdrv_getfontpoint.lst
字号:
################################################################################
# #
# IAR Systems Z80/64180 Assembler V3.03A/WIN 22/Sep/107 19:35:21 #
# #
# Target option = z80 #
# Source file = d:\case_i_d913f\drv\ui_ssd1332\sdrv\sdrv_getfontpoint.msa#
# List file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13\list\sdrv_getfontpoint.lst#
# Object file = d:\case_i_d913f\drv\ui_ssd1332\ui_ssd13\obj\sdrv_getfontpoint.r01#
# Command line = -v0 -uu #
# -OD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13\Obj\ #
# -s+ -M<> -w+ -r -DIC3951 -DNAPDEBUG #
# -LD:\case_i_d913f\drv\Ui_SSD1332\UI_SSD13\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\Sdrv_GetFontPoint.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 : Rcmai
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 2801 jr z,_buffer_in_zram
51 00000C 3D dec a //0x07 fram buf
fer
52 00000D _buffer_in_zram:
53 00000D 32.... ld (SD_RWStruct+7),a
54 000010 GetChineseCharPoint:
55 000010 7B ld a,e //区码
56 000011 FEA1 cp FirstSectionCode
57 000013 3021 jr nc,_not_ascii
58 000015 _is_ascii:
59 000015 3A.... ld a,(AsciiSelect)
60 000018 FE04 cp FONT_TYPE_LARGE
61 00001A 3802 jr c,lsUse0608Type
62 00001C 180A jr lsUse0816Type
63 00001E lsUse0608Type:
64 00001E AF xor a
65 00001F 67 ld h,a
66 000020 6B ld l,e
67 000021 0603 ld b,03h // ahl=a*8
68 000023 CD.... call AHL_LeftShift //输入参数:b
,hl
69 000026 1838 jr MoveAsciiPointToBuffer
70 000028 lsUse0816Type:
71 000028 AF xor a
72 000029 67 ld h,a
73 00002A 6B ld l,e
74 00002B 0604 ld b,04h // ahl=a*16
75 00002D CD.... call AHL_LeftShift //输入参数:b
,hl
76 000030 010008 ld bc,800h //0816Type A
SCII起始地址=800h
77 000033 09 add hl,bc
78 000034 182A jr MoveAsciiPointToBuffer
79 000036 _not_ascii:
80 000036 FEB0 cp 0xb0 //简体字库起
始区码
81 000038 3011 jr nc,_is_chinese
82 00003A _is_quanjiao:
83 00003A D6A1 sub FirstSectionCode
84 00003C CD.... call AddCountQuma //算出字个数
HL==((c-0xa1
)*94+(b-0xa1
))
85 00003F CD.... call AddCountWeima
86 000042 AF xor a
87 000043 0605 ld b,05h // ahl=a*32
88 000045 CD.... call AHL_LeftShift //输入参数:b
,hl
89 000048 C3.... jp MoveFontPointToBuffer
90 00004B _is_chinese:
91 00004B D6B0 sub 0xb0 //第一个汉字
的区码
92 00004D CD.... call AddCountQuma //算出字个数
HL==((c-0xb0
)*94+(b-0xa1
))
93 000050 CD.... call AddCountWeima
94 000053 014E03 ld bc,34eh //全角符号个
数=34eh
95 000056 09 add hl,bc
96 000057 AF xor a
97 000058 0605 ld b,05h // ahl=a*32
98 00005A CD.... call AHL_LeftShift //输入参数:b
,hl
99 00005D C3.... jp MoveFontPointToBuffer
100 000060 //--------------------------------------------------
101 000060 MoveAsciiPointToBuffer:
102 000060 ED5B.... ld de,(AsciiFontLibAddr)
103 000064 19 add hl,de
104 000065 22.... ld (SD_RWStruct),hl
105 000068 6F ld l,a
106 000069 2600 ld h,0
107 00006B ED5B.... ld de,(AsciiFontLibAddr+2)
108 00006F ED5A adc hl,de
109 000071 22.... ld (SD_RWStruct+2),hl
110 000074 1814 jr MovePointToBuffer
111 000076 MoveFontPointToBuffer:
112 000076 ED5B.... ld de,(FontLibAddr)
113 00007A 19 add hl,de
114 00007B 22.... ld (SD_RWStruct),hl
115 00007E 6F ld l,a
116 00007F 2600 ld h,0
117 000081 ED5B.... ld de,(FontLibAddr+2)
118 000085 ED5A adc hl,de
119 000087 22.... ld (SD_RWStruct+2),hl
120 00008A MovePointToBuffer:
121 00008A 11.... ld de,SD_RWStruct
122 00008D 012000 ld bc,32
123 000090 mSD_Read
123.1 000090 3E00 ld a,API_SD_Read
123.2 000092 CF rst RSTFastAPI
123.3 000093 endm
124 000093 MovePointBufferEnd:
125 000093 D1 pop de
126 000094 C1 pop bc
127 000095 C9 ret
128 000096 //--------------------------------------------------
-
129 000096 AddCountASCII: //算ICON地址,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -