RPL character set

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The RPL character set is an 8-bit character set and encoding used by most RPL calculators manufactured by Hewlett-Packard as well as by the HP 82240B thermo printer.[1][2] It is sometimes referred to simply as "ECMA-94" in documentation,[1][3] although it is for the most part a superset of ISO 8859-1 / ECMA-94 in terms of printable characters, and it differs from ISO-8859-1 by using displayable characters rather than control characters in the 0x80 to 0x9F range of code points.

Overview[edit]

In 1986,[3] the original series of RPL calculators (HP-28 series) as well as the HP 82240A thermal printer used a modified variant of the HP Roman-8 character set, of which characters above 147 could not be displayed on the calculator, only be printed.[4][5][6]

This changed with the introduction of the HP 82240B printer in 1989[3] and the HP 48 series in 1990, which came with a new character set now based on ECMA 94 / ISO 8859-1 instead of HP Roman-8, but with the control codes in the range 128 to 159 (0x80 to 0x9F) being replaced by additional displayable characters. Compared to ISO 8859-1, codepoint 127 (0x7F) showed a medium shaded gray box like in the former HP Roman-8 based character set. Code points 131 (0x83) to 142 (0x8E) were also taken over from the former HP Roman-8 based character set. In addition to this, codepoint 31 (0x1F) was used for ellipsis ()[7][8] and codepoints 169 (0xA9) and 174 (0xAE) showed ambiguous glyphs which could be viewed as inverse circled number or copyright symbol (©) and as or registered trademark symbol (®), respectively.[1][7] This first version of the character set also had a non-breaking space at position 160 (0xA0).[1][7]

Translation from HP-48 to HP-28 character set:[9]

HP translation vector
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
 
8_
 
0xA0 0x7F 0x7F 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x76
 
9_
 
0x5E 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0x7F 0xFC 0x7F
 
A_
 
0x20 0xB8 0xBF 0xAF 0xBA 0xBC 0x7C 0xBD 0xAB 0x63 0xF9 0x92 0x7E 0x2D 0x52 0xB0
 
B_
 
0xB3 0xFE 0x97 0x98 0xA8 0x8F 0xF4 0xF2 0x2C 0x31 0xFA 0x93 0xF7 0xF8 0xF5 0xB9
 
C_
 
0xA1 0xE0 0xA2 0xE1 0xD8 0xD0 0xD3 0xB4 0xA3 0xDC 0xA4 0xA5 0xE6 0xE5 0xA6 0xA7
 
D_
 
0xE3 0xB6 0xE8 0xE7 0xDF 0xE9 0xDA 0x82 0xD2 0xAD 0xED 0xAE 0xDB 0xB1 0xF0 0xDE
 
E_
 
0xC8 0xC4 0xC0 0xE2 0xCC 0xD4 0xD7 0xB5 0xC9 0xC5 0xC1 0xCD 0xD9 0xD5 0xD1 0xDD
 
F_
 
0xE4 0xB7 0xCA 0xC6 0xC2 0xEA 0xCE 0x81 0xD6 0xCB 0xC7 0xC3 0xCF 0xB2 0xF1 0xEF
HP translation vector
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

In a revision of this character set in 1999, codepoint 160 (0xA0) was redefined to hold the euro sign (€) in the HP 49/50 series (including the HP 48gII),[8][10][11] now deviating from ISO 8859-1. Codepoints 169 (0xA9) and 174 (0xAE) were now clearly defined as holding the copyright (©) and registered trademark (®) symbols in compliance with ISO 8859-1, whereas the corresponding glyphs still resembled the inverse circled numbers more.[8] The last calculator supporting this variant of the character set was the HP 50g introduced in 2006 and discontinued in 2015.

In a parallel development, the HP 38G also used the HP 48 series' character set internally. Starting with the HP 39G in 2000, the superscript 3 (³) at codepoint 179 (0xB3) was replaced by a superscript -1 (−1) in the HP 39/40 series (except for the HP 39gII, which started to use Unicode).[12] Codepoint 160 (0xA0) was also changed to the euro sign (€)[12] in this third variant of the character set. The last calculator supporting this variant of the character set was the HP 40gs introduced in 2006 and discontinued around 2011.

Hewlett-Packard never defined an official Unicode translation, hence several variants evolved in the community, differing in codepoints 31 (0x1F), 127 (0x7F), 128 (0x80), 129 (0x81), 133 (0x85), 134 (0x86), 158 (0x9E), 160 (0xA0), 169 (0xA9), 174 (0xAE), 178 (0xB3), 181 (0xB5) and 223 (0xDF).[13][14][15][16][17][18][19]

The fact that the Unicode equivalent for x-bar at code point 129 (0x81) is a combination of two characters (x̅) could cause problems in translations, therefore it was suggested to use U+0101 (ā) instead.[17][18][19]

Characters which cannot be reasonably transcoded should be mapped to code point 127 (0x7F), similar to what the calculators do when communicating with older printers like the HP 82240A.[20][8]

Since the calculators allow fonts to be redefined (using FONT→, →FONT, MINIFONT→, →MINIFONT) other codepages can be emulated for as long as symbols which are available on the keyboard or are otherwise associated with specific functionality by the calculator aren't replaced by unrelated symbols.

Code page layout[edit]

The following table shows the HP RPL character set. Each character is shown with a potential Unicode equivalent and its decimal code. Where special HP TIO codes are defined to enter the character, they are given as well.[2][21][7][8][22] The other characters can be entered using the \nnn TIO code syntax with nnn being a three-digit decimal number (with leading zeros if necessary) of the corresponding code point.[2][7][8][22]

Legend:

HP RPL character set
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
 
0_
 
NUL
0000
0
SOH
0001
1
STX
0002
2
ETX
0003
3
EOT
0004
4
ENQ
0005
5
ACK
0006
6
BEL
0007
7
BS
0008
8
HT
0009
9
LF (↵)
000A
10
VT
000B
11
FF
000C
12
CR
000D
13
SO
000E
14
SI
000F
15
 
1_
 
DLE
0010
16
DC1
0011
17
DC2
0012
18
DC3
0013
19
DC4
0014
20
NAK
0015
21
SYN
0016
22
ETB
0017
23
CAN
0018
24
EM
0019
25
SUB
001A
26
ESC
001B
27
(insert cursor)
001C
28
(overwrite cursor)
001D
29
(left)
001E
30
(right)
2026
31
 
2_
 
SP
0020
32
!
0021
33
"
0022
34
#
0023
35
$
0024
36
%
0025
37
&
0026
38
'
0027
39
(
0028
40
)
0029
41
*
002A
42
+
002B
43
,
002C
44
-
002D
45
.
002E
46
/
002F
47
 
3_
 
0
0030
48
1
0031
49
2
0032
50
3
0033
51
4
0034
52
5
0035
53
6
0036
54
7
0037
55
8
0038
56
9
0039
57
:
003A
58
;
003B
59
<
003C
60
=
003D
61
>
003E
62
?
003F
63
 
4_
 
@
0040
64
A
0041
65
B
0042
66
C
0043
67
D
0044
68
E
0045
69
F
0046
70
G
0047
71
H
0048
72
I
0049
73
J
004A
74
K
004B
75
L
004C
76
M
004D
77
N
004E
78
O
004F
79
 
5_
 
P
0050
80
Q
0051
81
R
0052
82
S
0053
83
T
0054
84
U
0055
85
V
0056
86
W
0057
87
X
0058
88
Y
0059
89
Z
005A
90
[
005B
91
\
005C
92
]
005D
93
^
005E
94
_
005F
95
 
6_
 
`
0060
96
a
0061
97
b
0062
98
c
0063
99
d
0064
100
e
0065
101
f
0066
102
g
0067
103
h
0068
104
i
0069
105
j
006A
106
k
006B
107
l
006C
108
m
006D
109
n
006E
110
o
006F
111
 
7_
 
p
0070
112
q
0071
113
r
0072
114
s
0073
115
t
0074
116
u
0075
117
v
0076
118
w
0077
119
x
0078
120
y
0079
121
z
007A
122
{
007B
123
|
007C
124
}
007D
125
~
007E
126

2592
127
 
8_
 
()
2221 (2220)
128
\<)
(ā)
0078+0305 (0101)
129
\x-

2207
130
\.V

221A
131
\v/

222B
132
\.S
Σ
03A3
133
\GS

25B6
134
\|>
π
03C0
135
\pi

2202
136
\.d

2264
137
\<=

2265
138
\>=

2260
139
\=/
α
03B1
140
\Ga

2192
141
\->

2190
142
\<-

2193
143
\|v
 
9_
 

2191
144
\|^
γ
03B3
145
\Gg
δ
03B4
146
\Gd
ε
03B5
147
\Ge
η
03B7
148
\Gn
θ
03B8
149
\Gh
λ
03BB
150
\Gl
ρ
03C1
151
\Gr
σ
03C3
152
\Gs
τ
03C4
153
\Gt
ω
03C9
154
\Gw
Δ
0394
155
\GD
Π
03A0
156
\PI
Ω
03A9
157
\GW

25A0
158
\[]

221E
159
\oo
 
A_
 
(NBSP)
(00A0) 20AC
160
¡
00A1
161
¢
00A2
162
£
00A3
163
¤
00A4
164
¥
00A5
165
¦
00A6
166
§
00A7
167
¨
00A8
168
© ()
00A9 (2778)
169
ª
00AA
170
«
00AB
171
\<<
¬
00AC
172
SHY
00AD
173
® ()
00AE (2777)
174
¯
00AF
175
 
B_
 
°
00B0
176
\^o
±
00B1
177
²
00B2
178
³ (−1)
00B3
179
´
00B4
180
µ (μ)
00B5 (03BC)
181
\Gm

00B6
182
·
00B7
183
¸
00B8
184
¹
00B9
185
º
00BA
186
»
00BB
187
\>>
¼
00BC
188
½
00BD
189
¾
00BE
190
¿
00BF
191
 
C_
 
À
00C0
192
Á
00C1
193
Â
00C2
194
Ã
00C3
195
Ä
00C4
196
Å
00C5
197
Æ
00C6
198
Ç
00C7
199
È
00C8
200
É
00C9
201
Ê
00CA
202
Ë
00CB
203
Ì
00CC
204
Í
00CD
205
Î
00CE
206
Ï
00CF
207
 
D_
 
Ð
00D0
208
Ñ
00D1
209
Ò
00D2
210
Ó
00D3
211
Ô
00D4
212
Õ
00D5
213
Ö
00D6
214
×
00D7
215
\.x
Ø
00D8
216
\O/
Ù
00D9
217
Ú
00DA
218
Û
00DB
219
Ü
00DC
220
Ý
00DD
221
Þ
00DE
222
ß (β)
00DF (03B2)
223
\Gb
 
E_
 
à
00E0
224
á
00E1
225
â
00E2
226
ã
00E3
227
ä
00E4
228
å
00E5
229
æ
00E6
230
ç
00E7
231
è
00E8
232
é
00E9
233
ê
00EA
234
ë
00EB
235
ì
00EC
236
í
00ED
237
î
00EE
238
ï
00EF
239
 
F_
 
ð
00F0
240
ñ
00F1
241
ò
00F2
242
ó
00F3
243
ô
00F4
244
õ
00F5
245
ö
00F6
246
÷
00F7
247
\:-
ø
00F8
248
ù
00F9
249
ú
00FA
250
û
00FB
251
ü
00FC
252
ý
00FD
253
þ
00FE
254
ÿ
00FF
255
HP RPL character set
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

See also[edit]

References[edit]

  1. ^ a b c d HP 82240B Infrared Printer (1 ed.). Corvallis, OR, USA: Hewlett Packard. August 1989. pp. 17–18. HP reorder number 82240-90014. Retrieved 2016-08-01. 
  2. ^ a b c "HP RPL TIO Table". holyjoe.org. Archived from the original on 2016-05-23. Retrieved 2015-01-23. 
  3. ^ a b c Nelson, Richard J. (May 2010). "HP 82240B IR Printer" (PDF). HP Solve (18). Archived from the original (PDF) on 2016-09-21. Retrieved 2016-09-21. 
  4. ^ HP-28S Advanced Scientific Calculator Reference Manual (PDF) (4 ed.). Hewlett-Packard. November 1988 [October 1987]. pp. 266–267. HP 00028-90068. Archived (PDF) from the original on 2015-06-08. Retrieved 2015-10-10. 
  5. ^ HP 82240A Infrared Printer (PDF) (2 ed.). Corvallis, OR, USA: Hewlett Packard, Portable Computer Division. October 1986. HP reorder number 82240-90001 (82240-90008). Archived (PDF) from the original on 2016-08-06. Retrieved 2016-08-06. 
  6. ^ Nungester, Rick (1988-08-18). "Infra-Red output converter". Luc Pauwels (published 2006-10-24). Archived from the original on 2016-08-06. Retrieved 2016-08-06. 
  7. ^ a b c d e HP 48G Series – User's Guide (UG) (8th ed.). Hewlett-Packard. December 1994 [1993]. pp. 2–5, 27–16. HP 00048-90126, (00048-90104). Archived from the original on 2016-08-06. Retrieved 2015-09-06.  [1]
  8. ^ a b c d e f HP 50g / 49g+ / 48gII graphing calculator advanced user’s reference manual (AUR) (2 ed.). Hewlett-Packard. 2009-07-14 [2005]. pp. 3–159, 3–160, J–1, J–2. HP F2228-90010. Retrieved 2015-10-10.  Searchable PDF
  9. ^ Dreher, Chris (2016-09-06). "Re: Questions regarding HP Roman character set". HP Articles Forum. The Museum of HP Calculators (MoHPC). Archived from the original on 2016-09-05. Retrieved 2016-09-06. 
  10. ^ Prange, James M. (2006-11-02). "Re: Those solid block characters in the characters menu". HP Forum Archive 16. The Museum of HP Calculators (MoHPC). Archived from the original on 2016-08-02. Retrieved 2016-08-02. 
  11. ^ Rautenberg, Wolfgang (2004-05-09). "IOMAN - A small but powerful I/O manager for the HP49G/HP49g+". 5.2004. Archived from the original on 2016-08-02. Retrieved 2016-08-02.  [2]
  12. ^ a b Croft, Colin (December 2006). hp 39gs and hp 40gs graphing calculators. Mastering the hp 39gs & hp 40gs - A guide for teachers, students and other users of the hp 39gs & hp 40gs (PDF). 1.0 (1st ed.). Hewlett-Packard Development Company, L.P. pp. 26, 221, 333. HP part number F2224-90010. Archived (PDF) from the original on 2016-03-03. Retrieved 2016-08-06. The original hp 38g only had the function INVERSE(…) and the -1 operator was added for convenience sake in the hp 39g, released in 2000. To do this the creators had to borrow one of the existing unused characters, the 3 character, and convert it into the -1 operator. However, they forgot to change it in the CHARS view and this error has never been fixed in any of the successive models! 
  13. ^ Lehmann, Alexander (2000-08-16). "HP48 Character Encoding Description File". 1.02. Kosta Kostis. Archived from the original on 2016-08-01. Retrieved 2016-08-01. 
  14. ^ "Codepages / Ascii Table HP48 Character Encoding". ASCII.ca. 2016 [2006]. Archived from the original on 2016-08-01. Retrieved 2016-08-01.  (older version: [3])
  15. ^ Bettencourt, Rebecca G. (2014) [1999]. "Character Encodings - Legacy Encodings - HP48". Kreative Korporation. Retrieved 2016-08-01. 
  16. ^ Dreher, Chris (2012-12-09) [2012-07-12]. "Mapping HP48 Text to Unicode". comp.sys.hp48. Retrieved 2016-08-01. 
  17. ^ a b Dreher, Chris (2012-07-11). "Mapping HP48 Text to Unicode". HP48 Articles. Archived from the original on 2016-08-01. Retrieved 2016-08-01. 
  18. ^ a b Dreher, Chris (2013-01-16). "Mapping HP48 Text to Unicode". HP Articles Forum. The Museum of HP Calculators (MoHPC). Archived from the original on 2016-08-01. Retrieved 2016-08-01. 
  19. ^ a b Bouget, Jean-Charles; Lapilli, Claudio Daniel (2016-06-15) [2015]. "Font8_StyleA.txt". newRPL (Alpha ed.). Archived from the original on 2016-08-08. Retrieved 2016-08-08. 
  20. ^ Prange, James M. (2002-06-04). "Re: Printers". HP Forum Archive 08. The Museum of HP Calculators (MoHPC). Archived from the original on 2016-08-06. Retrieved 2016-08-02. 
  21. ^ Heinz, Sr., Michael W. (2005). "HP-ASCII and Trigraphs". Archived from the original on 2016-08-02. Retrieved 2016-08-02. 
  22. ^ a b Finseth, Craig A. (2012-02-25). "chars". Archived from the original on 2017-12-21. Retrieved 2017-12-21. 

Further reading[edit]