Набор символов RPL представляет собой 8-битный набор символов и кодировку, используемые большинством калькуляторов RPL , производимых Hewlett-Packard, а также термопринтером HP 82240B . [ 1] [2] Иногда в документации его называют просто «ECMA-94», [1] [3] хотя по большей части он является надмножеством ISO /IEC 8859-1 / ECMA-94 с точки зрения печатных символов и отличается от ISO/IEC 8859-1 использованием отображаемых символов, а не управляющих символов в диапазоне кодовых точек от 0x80 до 0x9F .
В 1986 году [3] оригинальная серия калькуляторов RPL ( серия HP-28 ), а также термопринтер HP 82240A использовали модифицированный вариант набора символов HP Roman-8 , из которого символы выше 147 не могли отображаться на калькуляторе, а только печататься. [4] [5] [6]
Это изменилось с появлением принтера HP 82240B в 1989 году [3] и серии HP 48 в 1990 году, которая поставлялась с новым набором символов, теперь основанным на ECMA 94 / ISO 8859-1 вместо HP Roman-8, но с управляющими кодами в диапазоне от 128 до 159 (от 0x80 до 0x9F), замененными дополнительными отображаемыми символами. По сравнению с ISO 8859-1, кодовая точка 127 (0x7F) показывала среднезатененный серый квадрат, как в бывшем наборе символов на основе HP Roman-8. Кодовые точки 131 (0x83) - 142 (0x8E) также были взяты из бывшего набора символов на основе HP Roman-8. В дополнение к этому, кодовая точка 31 (0x1F) использовалась для многоточия ( … ) [7] [8] а кодовые точки 169 (0xA9) и 174 (0xAE) показывали неоднозначные глифы, которые можно было рассматривать как перевернутую круговую цифру ❸ или символ авторского права ( © ) и как ❷ или символ зарегистрированной торговой марки ( ® ), соответственно. [1] [7] Эта первая версия набора символов также имела неразрывный пробел в позиции 160 (0xA0). [1] [7] [9]
Перевод из набора символов HP-48 в HP-28: [10]
В пересмотре этого набора символов в 1999 году кодовая точка 160 (0xA0) была переопределена для хранения знака евро (€) в серии HP 49/50 (включая HP 48gII ), [8] [9] [11] [12] теперь отклоняясь от ISO 8859-1. Кодовые точки 169 (0xA9) и 174 (0xAE) теперь были четко определены как содержащие символы авторского права ( © ) и зарегистрированной торговой марки ( ® ) в соответствии с ISO 8859-1, тогда как соответствующие глифы по-прежнему больше напоминали перевернутые кружочки. [8] Последним калькулятором, поддерживающим этот вариант набора символов, был HP 50g, представленный в 2006 году и снятый с производства в 2015 году.
В параллельной разработке HP 38G также использовал набор символов серии HP 48 внутри себя. Начиная с HP 39G в 2000 году, верхний индекс 3 ( ³ ) в кодовой точке 179 (0xB3) был заменен на верхний индекс -1 ( −1 ) в сериях HP 39/40 (за исключением HP 39gII , который начал использовать Unicode ). [13] Кодовая точка 160 (0xA0) также была изменена на знак евро (€) [13] в этом третьем варианте набора символов. Последним калькулятором, поддерживающим этот вариант набора символов, был HP 40gs, представленный в 2006 году и снятый с производства около 2011 года.
Hewlett-Packard никогда не определяла официальный перевод Unicode, поэтому в сообществе появилось несколько вариантов, различающихся кодовыми точками 31 (0x1F), 127 (0x7F), 128 (0x80), 129 (0x81), 133 (0x85), 134 (0x86), 158 (0x9E), 160 (0xA0), 169 (0xA9), 174 (0xAE), 178 (0xB3), 181 (0xB5) и 223 (0xDF). [14] [15] [16] [17] [18] [19] [20]
Тот факт, что эквивалент Unicode для x-bar в кодовой точке 129 (0x81) представляет собой комбинацию двух символов (x̅), может вызвать проблемы при переводе, поэтому было предложено использовать вместо этого U+0101 (ā). [18] [19] [20]
Символы, которые не могут быть разумно перекодированы, должны быть сопоставлены с кодовой точкой 127 (0x7F), подобно тому, как это делают калькуляторы при взаимодействии со старыми принтерами, такими как HP 82240A. [21] [8]
Поскольку калькуляторы позволяют переопределять шрифты (используя FONT→
, →FONT
, MINIFONT→
, →MINIFONT
), можно эмулировать другие кодовые страницы до тех пор, пока символы, доступные на клавиатуре или иным образом связанные с определенной функциональностью калькулятора, не будут заменены несвязанными символами.
В следующей таблице показан набор символов HP RPL. Каждый символ показан с потенциальным эквивалентом Unicode во всплывающей подсказке. Если для ввода символа определены специальные коды HP TIO , они также приводятся. [2] [22] [7] [8] [23] Другие символы можно ввести с помощью \nnn
синтаксиса кода TIO, где nnn — это трехзначное десятичное число . [2] [7] [8] [23]
[…] Существует бесконечный список вещей, которые являются положительными, но только очень немногие вещи, которые мне не нравятся или которые мне не нравятся в
HP48G(X)
. […] в наборе символов нет
валюты евро
— я когда-то предлагал добавить ее в кодовую точку 160 (в любом случае, это очень простительно, так как символ не был определен до 1997 года) […]
Оригинальный
hp 38g
имел только функцию INVERSE(...), а оператор -1 был добавлен для удобства в
hp 39g
, выпущенном в 2000 году. Чтобы сделать это, создателям пришлось позаимствовать один из существующих неиспользуемых символов, символ 3, и преобразовать его в оператор -1. Однако они забыли изменить его в представлении CHARS, и эта ошибка так и не была исправлена ни в одной из последующих моделей!