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
[edit | edit source]The character set is derived from ASCII, but with the control code range and some high bit characters replaced by various special characters.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 0x | ‾/♦ | × | x̅/ā | ← | α | β | Γ | ↓ | Δ | σ | ♦ | λ | µ/μ | ∡/∠ | τ | Φ |
| 1x | θ | Ω | δ | Å | å | Ä | ä | Ö | ö | Ü | ü | Æ | æ | ≠ | £/₤ | ▒ |
| 2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ↑/^ | _ |
| 6x | `/⊤ | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 7x | p | q | r | s | t | u | v | w | x | y | z | π | | | → | Σ | ⊦[nb 1] |
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,[6] as part of its extended variant of the 1985 revision of the HP Roman-8 character set,[7][8] although at completely different code points.
There is no code point definition for the euro sign in this character set.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
| 0x | ÷ | × | √ | ∫ | ░ | Σ | ▶[nb 2] | π | ¿ | ≤ | LF/EOT | ≥ | ≠ | ↵ | ↓ | → |
| 1x | ← | µ/μ | £/₤ | ° | Å | Ñ | Ä | ∡/∠ | ᴇ/⏨ | Æ | …/‥ | ␛ | Ö | Ü | ▒ | ■/· |
| 2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| 5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ↑/^ | _ |
| 6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
| 7x | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | ⊦[nb 1] |
| 8x | ¦? | ¥? | ▓? | ␊ |
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 | |
| 0x | 0x81 | 0x82 | 0x83 | 0x84 | 0x04 | 0x85 | 0x86 | 0x87 | 0x08 | 0x89 | 0x04 | 0x8A | 0x8B | 0x0D | 0x0E | 0x8D |
| 1x | 0x8E | 0x8F | 0xAF | 0xB3 | 0xA2 | 0xB6 | 0xD8 | 0xA0 | 0x18 | 0xD3 | 0x9B | 0x1B | 0xDA | 0xDB | 0x7F | 0xF2 |
| 7x | 0x70 | 0x71 | 0x72 | 0x73 | 0x74 | 0x75 | 0x76 | 0x77 | 0x78 | 0x79 | 0x7A | 0x7B | 0x7C | 0x7D | 0x7E | 0x94 |
| 8x | 0x80 | 0x81 | 0x82 | 0x83 | 0x84 | 0x85 | 0x86 | 0x87 | 0x88 | 0x89 | 0x90 | 0x8B | 0x8C | 0x8D | 0x8E | 0x8F |
See also
[edit | edit source]Notes
[edit | edit source]- ^ a b 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. [1]
References
[edit | edit source]- ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
Further reading
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).