FOCAL character set
In computing FOCAL character set refers to a group of 8-bit single byte character sets introduced by Hewlett-Packard since 1979. It was used in several RPN calculators supporting the FOCAL programming language, like the HP-41C/CV/CX as well as the later HP-42S,[1][2] which was introduced in 1988[1][2] and produced up to 1995. As such, it is also used by SwissMicros' DM41/L, both introduced in 2015, and is implicitly supported by the DM42, introduced in 2017 (although the later calculator utilizes Free42, which is based on Unicode internally).
Character set
The character set is derived from ASCII, but with the control code range and some high bit characters replaced by various special characters.
Letter Number Punctuation Symbol Other undefined
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ | ¯ (‾)/ ♦ 203E (203E)/ 2666 0 |
∝? 221D? 1 |
(x̅) (ā) 0078+0305 (0101) 2 |
(←) 2190 3 |
α 03B1 4 |
β 03B2 5 |
Γ 0393 6 |
(↓) 2193 7 |
(Δ) 0394 8 |
(σ) 03C3 9 |
(♦) 2666 10 |
(λ) 03BB 11 |
µ (μ) 00B5 (03BC) 12 |
∡ (∠) 2221 (2220) 13 |
(τ) 03C4 14 |
(Φ) 03A6 15 |
1_ | (θ) 03B8 16 |
(Ω) 03A9 17 |
&? 0026? 18 |
(Å) 00C5 19 |
(å) 00E5 20 |
(Ä) 00C4 21 |
(ä) 00E4 22 |
(Ö) 00D6 23 |
(ö) 00F6 24 |
(Ü) 00DC 25 |
(ü) 00FC 26 |
(Æ) 00C6 27 |
(æ) 00E6 28 |
≠ 2260 29 |
(£) (₤) 00A3 (20A4) 30 |
▒ 2592 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 |
↑ (^) 2191 (005E) 94 |
_ 005F 95 |
6_ | ` (⊤) 0060 (22A4) 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 |
(π) 03C0 123 |
(|) 007C 124 |
(→) 2192 125 |
Σ 03A3 126 |
⊦[nb 1] 22A6? 127 |
8_–F_ | ... | |||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
When Hewlett-Packard introduced the HP-42S in 1988, the FOCAL character set was revised to include more characters, including a number of characters already provided by the HP 82240A infrared thermo printer, which had been introduced in 1986,[5] as part of its extended variant of the 1985 revision of the HP Roman-8 character set,[6][7] although at completely different code points.
There is no code point definition for the euro sign in this character set.
Letter Number Punctuation Symbol Other undefined
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ | ÷ 00F7 0 |
× 00D7 1 |
√ 221A 2 |
∫ 222B 3 |
░ 2591 4 |
Σ 03A3 5 |
▶[nb 2] 25B6 6 |
π 03C0 7 |
¿ 00BF 8 |
≤ 2264 9 |
LF (EOT) 000A (0004) 10 |
≥ 2265 11 |
≠ 2260 12 |
↵ 21B5 13 |
↓ 2193 14 |
→ 2192 15 |
1_ | ← 2190 16 |
µ (μ) 00B5 (03BC) 17 |
£ (₤) 00A3 (20A4) 18 |
° 00B0 19 |
Å 00C5 20 |
Ñ 00D1 21 |
Ä 00C4 22 |
∡ (∠) 2221 (2220) 23 |
ᴇ (⏨) 1D07 (23E8) 24 |
Æ 00C6 25 |
… (‥) 2026 (2025) 26 |
␛ 241B 27 |
Ö 00D6 28 |
Ü 00DC 29 |
▒ 2592 30 |
■ (·) 25A0 (00B7) 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 |
↑ (^) 2191 (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 |
⊦[nb 1] 22A6? 127 |
8_ | ¦? 00A6? 128 |
¥? 00A5? 129 |
▓? 2593? 130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
␊ 240A 138 |
139 |
140 |
141 |
142 |
143 |
9_–F_ | ... | |||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
Translation from HP-42S character set to the modified HP Roman-8 (supported by HP 82240A etc.) character set:
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ | 0x81 | 0x82 | 0x83 | 0x84 | 0x04 | 0x85 | 0x86 | 0x87 | 0x08 | 0x89 | 0x04 | 0x8A | 0x8B | 0x0D | 0x0E | 0x8D |
1_ | 0x8E | 0x8F | 0xAF | 0xB3 | 0xA2 | 0xB6 | 0xD8 | 0xA0 | 0x18 | 0xD3 | 0x9B | 0x1B | 0xDA | 0xDB | 0x7F | 0xF2 |
2_ | 0x20 | 0x21 | 0x22 | 0x23 | 0x24 | 0x25 | 0x26 | 0x27 | 0x28 | 0x29 | 0x2A | 0x2B | 0x2C | 0x2D | 0x2E | 0x2F |
3..6_ | ... | |||||||||||||||
7_ | 0x70 | 0x71 | 0x72 | 0x73 | 0x74 | 0x75 | 0x76 | 0x77 | 0x78 | 0x79 | 0x7A | 0x7B | 0x7C | 0x7D | 0x7E | 0x94 |
8_ | 0x80 | 0x81 | 0x82 | 0x83 | 0x84 | 0x85 | 0x86 | 0x87 | 0x88 | 0x89 | 0x90 | 0x8B | 0x8C | 0x8D | 0x8E | 0x8F |
9..F_ | ... | |||||||||||||||
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
See also
Notes
- 1 2 The glyph at code point 127 (⊦) is called APPEND character in Hewlett-Packard terminology. In the HP-41C/CV/CX and HP-42S series of calculators, it is used to indicate that the following characters will be appended to the alpha register rather than replacing the existing contents of the register.
- ↑ The glyph at code point 6 is called GOOSE character in Hewlett-Packard terminology. While U+25B6 (▶) is the preferred Unicode character for maximum cross-compatibility with established RPL character set mappings, Free42 since release 2.0.1 (2017-04-23) maps to U+25B8 (▸) instead.
References
- 1 2 3 RPN Scientific Calculator - Owner's Manual - HP-42S (PDF) (1 ed.). Hewlett-Packard. June 1988. 00042-90001, 00042-90002. Archived (PDF) from the original on 2018-01-04. Retrieved 2018-01-04.
- 1 2 HP-42S RPN Scientific - Programming Examples and Techniques (PDF) (1 ed.). Corvallis, OR, USA: Hewlett-Packard Company, Corvallis Division. July 1988. 00042-90020, 00042-90019. Archived (PDF) from the original on 2018-01-04. Retrieved 2018-01-04.
- ↑ Hicks, David G. (2017) [1998]. "HP-41C Synthetic Programming". The Museum of HP Calculators (MoHPC). Archived from the original on 2018-01-06. Retrieved 2018-01-06.
- ↑ Hicks, David G. (1997). "Graphic byte code table". The Museum of HP Calculators (MoHPC). Archived from the original on 2018-01-06. Retrieved 2018-01-06.
- ↑ 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.
- ↑ 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.
- ↑ 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.
Further reading
- HP-41C Operating Manual - A Guide for the Experienced User (PDF). Hewlett-Packard Company. June 1980. 00041-90259. Archived (PDF) from the original on 2018-01-04. Retrieved 2018-01-04.
- Oerttel, Burkhard; Hümpfner, Reinhold; Meier, Bernhard; Schilli, Michael; Weber, Andreas; Leissner, Frank; Kaiser, Axel; Strewinski, Reinhard; von Borries, Sebastian; Dalkowski, Heinz; Fegert, Stefan (2014) [1989]. Fegert, Stefan; Dalkowski, Heinz, eds. Programmsammlung für den HP-41 (PDF) (in German). Berlin, Germany: Heldermann Verlag. ISBN 3-88538-809-X. Archived (PDF) from the original on 2018-01-04. Retrieved 2018-01-04.