PC-E500S中文界面设计的研究与探讨
韦绍福
(广西第二测绘院 545006)
【摘 要】 本文介绍PC-E500S中文界面的设计的主要过程和方法,并举例说明在实际应用中如何设计中文界面。
【关键词】 PC-E500S 中文界面 电子手簿 GPRINT GCURSOR
一、前言
PC-E500S是日本SHARP公司在PC-E500基础上改良生产的一种体积小、重量轻、容量大、计算精度高、适合野外工作的袖珍计算机系列。它本身具有代数、矩阵、工程(1101项软件)、BASIC五大工作状态。同时对主机容量和外存RAM的深入开发使用可利用的RAM空间达到512KB,可满足用户的不同需要。对于PC-E500S袖珍计算机,实现汉字显示是一件比较困难的事情。为了能在其上显示汉字,最简单也是最繁琐的方法是按照PC-E500S显示汉字原理手工用方格纸造字。特别在工程软件编程上,设计自己的中文界面是很实用的。
二、重要的两个命令GPRINT和GCURSOR
1、GPRINT:显示点阵图形命令,其缩写格式为GP。
格式有三种:
(1)GPRINT“字符串”
(2)GPRINT算式〔;算式1;算式2;算式…〕
(3)GPRINT
①在格式1中,每栏单位图像数据由8个竖点表示,8点图形波被分成4点下组和4点上组,每组由一个十六进制数字代表,该数字串应在引号“”内。每一个十六进制数字与点阵图形对应如下:

GPRINT“○○ ○○ ○○ …… ”
① ② ③ ④
每对十六进制数字代表一个竖点阵图(8点)。第一个数字代表下4点,第二个数字代表上4点。例如下面“测绘”二字:

对照上表,“测”字的代码应为:“856A3F817D813FBCFF”;“绘”字的代码应为:“945E3514DAB9DA94”。在设计中文界面时,要在显示屏上显示“测绘”二字则可以表示为:
GPRINT“856A3F817D813FBCFF”;“945E3514DAB9DA94”或者GPRINT“85;6A;3F;81;7D;81;3F;BC;FF;00;94;5E;35;14;DA;B9;DA;94”,用(;)号在字符串尾可以自动将光标移到下一个位置。
②在格式2中,用十六进制或十进制数字说明一竖8点阵图形。如下图所示,每点都被分配给一个“重量”。
根据格式2,每一个“重量”值对应一个点阵图,要在显示屏上显示“测绘”二字则可以表示为:
·测(十进制):GPRINT 1+4+128;2+8+32+64;1+2+4+8+16+32;1+128;1+2+4+8+16+32+64;1+128;1+2+4+8+16+32;4+8+16+32+128;1+2+4+8+16+32+64+128
·绘(十进制):GPRINT 4+16+128;2+4+8+16+64;1+4+16+32;4+16;2+8+16+64+128;1+8+16+32+128;2+8+16+64+128;4+16+128

用十六进制表示时,把“测绘”二字中十进制数字转换成十六进制,注意十六进制的表示方法。也可以用各个式子的和表示,如“4+16+128”可用“148(十进制)”或“&H94(十六进制)”表示。
③据格式3中,先前指定的和显示的图形再被显示,无须修正。由GPRINT指令说明的点阵图显示时最少有8点,起始点由GCURSOR指令指定。
2、GCURSOR:指定由GPRINT指令显示的点图形的显示起点。其缩写格式为GC。格式为:GCURSOR(算式1,算式2)。
PC-E500S液晶显示屏是由240栏及32行点阵组成,这些点阵可被栏数0-239及行数0-31来定位。这样,可由算式1指定的栏数及算式2指定的行数对屏幕上的任意点作为起点来定位。例如要显示封面格式如下时,

则代码可以示为(例如每个字的十六进制代码存于机子内存中,具体详见附录):
10:CLS:GCURSOR(48,9):GPRINT A$(81);A$(82);A$(22);A$(23);A$(24);A$(25);A$(5);A$(24);A$(26);A$(27);A$(88);A$(89);A$(28);A$(29)
20:GCURSOR(20,29):GPRINT A$(83);A$(84);A$(85);A$(20);A$(24);A$(86);A$(87)
30:GCURSOR(95,20):GPRINT A$(78);A$(77);A$(50);A$(53);A$(76);A$(37);A$(51)
40:GCURSOR(100,29):GPRINT A$(20);A$(37);A$(37);A$(80);A$(38);A$(20);A$(39)
50:GCURSOR(175,29):GPRINT A$(55);A$(54);A$(76);A$(52);A$(42)
60:P$=INPUT $(1)
70:END
10行中(48,9)表示栏数为48,行数为9作为起点,显示内容为“精密水准测量观测记录电子手簿”。其他20、30、40、50行括号中的各对数字意义同10行括号中的数字一样,前个数字表示栏数,后面个数表示行数。值得注意的是,虽然算式1和算式2的值域均为-32768到+32768,但算式1的值超出0-239的范围或算式2的值超出0-31的范围,显示起点就会是虚点,不在屏幕之内。另外,若执行RUN指令或按SHIFT+CA,显示起点的位置会被自动设为(0,7)。若程式由GOTO开始,该指令仅对指定的行数、栏数自动设置为0。
三、结束语
运用GPRINT和GCURSOR设计中文界面时,若结合LOCATE、LINE等其他指令,可设计出丰富多彩的PC-E500S中文界面时,为了充分利用其有限的显示屏和内存空间,可选择用于AutoCAD软件上的汉字矢量库,根据字库的生成原理,用程序直接读取字库转换成不同大小的能在PC-E500S上显示的小字库。通常使用8*8的字库比较合适,每一汉字仅需要16字节。采用本方法,基本上实现了汉字显示,节省了内存。由于PC-E500S内存有限,各人的设计风格各异,但设计中文界面时应尽量简单明了,不要太过于复杂繁琐。另外,同一个字的不同字体以及字体大小不同,其代码也尽不相同;那怕同一个汉字同样字体及大小,不同人员设计时其代码也尽不相同。
下面是本文作者在设计《一、二等水准测量观测记录电子手簿》时的部分汉字及符号的代码,仅供读者参考。
序号 |
文字 |
十六进制代码 |
序号 |
文字 |
十六进制代码 |
0 |
红 |
005F5555550022223E2222 |
45 |
清 |
00895228FA5E7F5EFA08 |
1 |
黑 |
0020673537753F753735672 |
46 |
除 |
00FF151B80549AF91A5480 |
2 |
前 |
00423E2A2B7E021A437E02 |
47 |
忆 |
0004FF08F28A8682E0 |
3 |
后 |
00403F0575555555557504 |
48 |
信 |
0004FE01EAAEAFAEEA00 |
4 |
距 |
0077457D57007F55555D41 |
49 |
息 |
004022FEB3DE92DE2040 |
5 |
观 |
008652225E9F417D819FC0 |
50 |
< |
000814224100 |
6 |
高 |
00780A0A7A5E5B5E7A0A0A78 |
51 |
> |
00004122140800 |
7 |
小 |
00201C0000407F0000001C20 |
52 |
柳 |
00201AFF0A3EA279FE223E |
8 |
结 |
005F555555087A5A5F5A7A08 |
53 |
1 |
00427F40 |
9 |
上 |
00404040407F4444444040 |
54 |
国 |
00FF81C3CBFFEBC381FF |
10 |
下 |
00010101017F0909090101 |
55 |
中 |
001C1414FF14141C |
11 |
仪 |
0008FC0300C7281328C7 |
56 |
请 |
0004877C28FA5E7F5EFA08 |
12 |
器 |
00EBADBDEB0CEBBDADEB |
57 |
选 |
00827F84CAAB9AFFCAEA80 |
13 |
往 |
000AFA059292FF9292 |
58 |
择 |
00A4FF14486BF56B48 |
14 |
返 |
00847DC0BEDEA6DD80 |
59 |
打 |
00A4FF140242827E0202 |
15 |
正 |
008081F981FF91919181 |
60 |
开 |
0088493F0909FF0908 |
16 |
在 |
002212FA46537A5242 |
61 |
新 |
00AA6EFB6EAAFE0AF908 |
17 |
基 |
9052BFDEFEDEBF5290 |
62 |
建 |
00B25A76A4BEFFBEA4 |
18 |
辅 |
002A2EFF2AFA6AFF6BFA |
63 |
退 |
00827F80FFAF97AFC0 |
19 |
一 |
000808080808080808 |
64 |
出 |
00F04E487F484EF0 |
20 |
二 |
00404044444444444040 |
65 |
通 |
00827F80F9BBFDBDFB80 |
21 |
等 |
0014133EBAFCBCFB3612 |
66 |
信 |
00857E29FF097F80C0 |
22 |
水 |
0084443C80FF003C4484 |
67 |
角 |
0000847E55FDD7FC00 |
23 |
准 |
0022740CFE81AAFFAA80 |
68 |
检 |
00201AFF8A9CAAF9AA9C88 |
24 |
测 |
00856A3F817D813FBCFF |
69 |
查 |
00808AFAF6FFF6FA8A80 |
25 |
量 |
〃000888FFFFFFFFF8808 |
70 |
过 |
00847D808494C4FF84 |
26 |
记 |
0002837E20F191919FC0 |
71 |
河 |
00854A201D159DFF01 |
27 |
录 |
0004947787FF07779484 |
72 |
数 |
009BB65FB69B845F225E82 |
28 |
手 |
000020222AAAFE2A292020 |
73 |
据 |
00A4FF14807FEBBFEB |
29 |
簿 |
00D6693F3DBCFEBDFF3D20 |
74 |
转 |
002A2EFF2A287AAF6A28 |
30 |
丝 |
005F555555405F555555〃 |
75 |
换 |
00A4FF1420BC6B3D6DBB20 |
31 |
文 |
0000828E5223528E82 |
76 |
· |
003030 |
32 |
件 |
0008FC031413FF1210 |
77 |
本 |
0024142CFF2C1424 |
33 |
名 |
004024F6BBB2AAE600 |
78 |
版 |
00807F14F7847EBA4AB9 |
34 |
成 |
00807E4A7A827F629BC2 |
79 |
像 |
0004FE01EE7DFD2F5D80 |
35 |
级 |
00545ED540A1BFC97780 |
80 |
五 |
00884A2A1E2A4A88 |
36 |
标 |
00201AFF0A48AAFA2A48 |
81 |
精 |
004A2CFF2C4AFA5E7F5EFA08 |
37 |
0 |
007C8282827C00 |
82 |
密 |
00944ADAB69AF79A8AD602 |
38 |
年 |
0024243B2AFE2A2A22 |
83 |
广 |
00807E020203020202 |
39 |
月 |
00807F151595FF |
84 |
西 |
00FDA59F859FA5FD |
40 |
运 |
0082437EA4B5ADB5A480 |
85 |
第 |
00B4BB7EFA3CBBA642 |
41 |
行 |
000AFA05080989F90800 |
86 |
绘 |
00945E3514DAB9DA94 |
42 |
州 |
0008847F087E08FF |
87 |
院 |
00FF151B967A1BFA96C0 |
43 |
是 |
0088487F8FFFAFAF8888 |
88 |
电 |
003E2A2A7FAAAABEC0 |
44 |
否 |
001111E9A5BFA1E91111 |
89 |
子 |
000949897D0B0908 |
参 考 文 献
[1] 日本夏普公司:《PC-E500使用手册》,日本夏普公司,PRINTED IN JAPAN
[2] 龚德书、徐德友、张家根;《导线和细部测量电子记录手簿的研究与开发》,电子版 |