Знакогенератор: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
м (Ненужная информация)
Нет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 1: Строка 1:
Набор символов [[ЭКВМ]] основан на альтернативной кодировке из ГОСТ 19768-87 и хорошо совместим с кодовой страницей 866 фирмы IBM, которая в свою очередь основана на фундаментальном [https://ru.wikipedia.org/wiki/ASCII американском стандарте ASCII], который используется с 1960-ых годов.


Основное достоинство «альтернативной» кодировки, помимо её широкой распространённости — [[русские буквы]] в ней идут в алфавитном порядке, хотя и не всегда последовательно.  По историческим причинам<ref>Алфавит строчных русских букв был «разрублен», т.к. возможность читать русские тексты в [https://ru.wikipedia.org/wiki/Norton_Commander зарубежной программе Norton Commander], сохраняя красивые «рамочки» из псевдографики, была неотразимо привлекательной.  Псевдографика IBM была заменена в ЭКВМ на спецсимволы ПМК, но для сохранения совместимости с текстами, созданными в эпоху MS-DOS, позиции русских букв остались нетронутыми.</ref> между строчными русскими буквами [[Символ с кодом 175|"п"]] и [[Символ с кодом 224|"р"]] наблюдается гигантский разрыв<ref>Интересно, что хотя формально в Юникоде все русские буквы идут по порядку, такой же разрыв между русскими буквами [[Символ с кодом 175|"п"]] и [[Символ с кодом 224|"р"]] наблюдается в кодировке [https://ru.wikipedia.org/wiki/UTF-8 UTF-8]: [[Символ с кодом 175|"п"]] кодируется D0 BF, а [[Символ с кодом 224|"р"]] уже D1 80.</ref> в 48 символов.  Исключением из алфавитного правила стала буква [[Ё|"Ё"]], получившая свой код позднее остальных русских букв.
Тексты на русском и английском языках, подготовленные в стандарте операционной системы MS-DOS, могут читаться на ЭКВМ без перекодировки.  Тоже самое относится ко всем текстам в популярнейшей кодировке ASCII.  Тексты, подготовленные в Юникоде и кодировках других операционных систем (MSX, Windows, Linux, OS X и др.), достаточно перекодировать в «стандарт MS-DOS», то есть кодовую страницу 866.  На некоторых текстах можно достичь лучших результатов, если учитывать весь набор символов [[ЭКВМ]].
{| border="1" cellspacing="0"
|- align="center"
| width="4%" align="center" |
! width="6%" align="center" | 0 || width="6%" align="center" | 1
! width="6%" align="center" | 2 || width="6%" align="center" | 3
! width="6%" align="center" | 4 || width="6%" align="center" | 5
! width="6%" align="center" | 6 || width="6%" align="center" | 7
! width="6%" align="center" | 8 || width="6%" align="center" | 9
! width="6%" align="center" | a || width="6%" align="center" | b
! width="6%" align="center" | c || width="6%" align="center" | d
! width="6%" align="center" | e || width="6%" align="center" | f
|- align="center"
! 0
| [[Символ с кодом 0| ▌]]
| [[Символ с кодом 1| (нет)]]
| [[Символ с кодом 2| (нет)]]
| [[Символ с кодом 3| (нет)]]
| [[Символ с кодом 4| (нет)]]
| [[Символ с кодом 5| (нет)]]
| [[Символ с кодом 6| (нет)]]
| [[Символ с кодом 7| (нет)]]
| [[Символ с кодом 8| (нет)]]
| [[Символ с кодом 9| "\t"]]
| [[Символ с кодом 10| "\n"]]
| [[Символ с кодом 11| (нет)]]
| [[Символ с кодом 12| (нет)]]
| [[Символ с кодом 13| "\r"]]
| [[Символ с кодом 14| (нет)]]
| [[Символ с кодом 15| (нет)]]
|- align="center"
! 1
| [[Символ с кодом 16| ►]]
| [[Символ с кодом 17| (нет)]]
| [[Символ с кодом 18| (нет)]]
| [[Символ с кодом 19| &#124;&#124;]]
| [[Символ с кодом 20| (нет)]]
| [[Символ с кодом 21| (нет)]]
| [[Символ с кодом 22| (нет)]]
| [[Символ с кодом 23| (нет)]]
| [[Символ с кодом 24| ↑]]
| [[Символ с кодом 25| ↓]]
| [[Символ с кодом 26| →]]
| [[Символ с кодом 27| ←]]
| [[Символ с кодом 28| (нет)]]
| [[Символ с кодом 29| (нет)]]
| [[Символ с кодом 30| (нет)]]
| [[Символ с кодом 31| " "]]
|- align="center"
! 2
| [[Символ с кодом 32| " "]]
| [[Символ с кодом 33| !]]
| [[Символ с кодом 34| &#34;]]
| [[Символ с кодом 35| #]]
| [[Символ с кодом 36| $]]
| [[Символ с кодом 37| %]]
| [[Символ с кодом 38| &]]
| [[Символ с кодом 39| ’]]
| [[Символ с кодом 40| (]]
| [[Символ с кодом 41| )]]
| [[Символ с кодом 42| ∗]]
| [[Символ с кодом 43| +]]
| [[Символ с кодом 44| ,]]
| [[Символ с кодом 45| −]]
| [[Символ с кодом 46| .]]
| [[Символ с кодом 47| /]]
|- align="center"
! 3
| [[Символ с кодом 48| 0]]
| [[Символ с кодом 49| 1]]
| [[Символ с кодом 50| 2]]
| [[Символ с кодом 51| 3]]
| [[Символ с кодом 52| 4]]
| [[Символ с кодом 53| 5]]
| [[Символ с кодом 54| 6]]
| [[Символ с кодом 55| 7]]
| [[Символ с кодом 56| 8]]
| [[Символ с кодом 57| 9]]
| [[Символ с кодом 58| :]]
| [[Символ с кодом 59| ;]]
| [[Символ с кодом 60| &lt;]]
| [[Символ с кодом 61| =]]
| [[Символ с кодом 62| &gt;]]
| [[Символ с кодом 63| ?]]
|- align="center"
! 4
| [[Символ с кодом 64| @]]
| [[Символ с кодом 65| A]]
| [[Символ с кодом 66| B]]
| [[Символ с кодом 67| C]]
| [[Символ с кодом 68| D]]
| [[Символ с кодом 69| E]]
| [[Символ с кодом 70| F]]
| [[Символ с кодом 71| G]]
| [[Символ с кодом 72| H]]
| [[Символ с кодом 73| I]]
| [[Символ с кодом 74| J]]
| [[Символ с кодом 75| K]]
| [[Символ с кодом 76| L]]
| [[Символ с кодом 77| M]]
| [[Символ с кодом 78| N]]
| [[Символ с кодом 79| O]]
|- align="center"
! 5
| [[Символ с кодом 80| P]]
| [[Символ с кодом 81| Q]]
| [[Символ с кодом 82| R]]
| [[Символ с кодом 83| S]]
| [[Символ с кодом 84| T]]
| [[Символ с кодом 85| U]]
| [[Символ с кодом 86| V]]
| [[Символ с кодом 87| W]]
| [[Символ с кодом 88| X]]
| [[Символ с кодом 89| Y]]
| [[Символ с кодом 90| Z]]
| [[Символ с кодом 91| &#91;]]
| [[Символ с кодом 92| \]]
| [[Символ с кодом 93| &#93;]]
| [[Символ с кодом 94| ^]]
| [[Символ с кодом 95| _]]
|- align="center"
! 6
| [[Символ с кодом 96| `]]
| [[Символ с кодом 97| a]]
| [[Символ с кодом 98| b]]
| [[Символ с кодом 99| c]]
| [[Символ с кодом 100| d]]
| [[Символ с кодом 101| e]]
| [[Символ с кодом 102| f]]
| [[Символ с кодом 103| g]]
| [[Символ с кодом 104| h]]
| [[Символ с кодом 105| i]]
| [[Символ с кодом 106| j]]
| [[Символ с кодом 107| k]]
| [[Символ с кодом 108| l]]
| [[Символ с кодом 109| m]]
| [[Символ с кодом 110| n]]
| [[Символ с кодом 111| o]]
|- align="center"
! 7
| [[Символ с кодом 112| p]]
| [[Символ с кодом 113| q]]
| [[Символ с кодом 114| r]]
| [[Символ с кодом 115| s]]
| [[Символ с кодом 116| t]]
| [[Символ с кодом 117| u]]
| [[Символ с кодом 118| v]]
| [[Символ с кодом 119| w]]
| [[Символ с кодом 120| x]]
| [[Символ с кодом 121| y]]
| [[Символ с кодом 122| z]]
| [[Символ с кодом 123| &#123;]]
| [[Символ с кодом 124| &#124;]]
| [[Символ с кодом 125| &#125;]]
| [[Символ с кодом 126| ~]]
| [[Символ с кодом 127| ⌂]]
|- align="center"
! 8
| [[Символ с кодом 128| А]]
| [[Символ с кодом 129| Б]]
| [[Символ с кодом 130| В]]
| [[Символ с кодом 131| Г]]
| [[Символ с кодом 132| Д]]
| [[Символ с кодом 133| Е]]
| [[Символ с кодом 134| Ж]]
| [[Символ с кодом 135| З]]
| [[Символ с кодом 136| И]]
| [[Символ с кодом 137| Й]]
| [[Символ с кодом 138| К]]
| [[Символ с кодом 139| Л]]
| [[Символ с кодом 140| М]]
| [[Символ с кодом 141| Н]]
| [[Символ с кодом 142| О]]
| [[Символ с кодом 143| П]]
|- align="center"
! 9
| [[Символ с кодом 144| Р]]
| [[Символ с кодом 145| С]]
| [[Символ с кодом 146| Т]]
| [[Символ с кодом 147| У]]
| [[Символ с кодом 148| Ф]]
| [[Символ с кодом 149| Х]]
| [[Символ с кодом 150| Ц]]
| [[Символ с кодом 151| Ч]]
| [[Символ с кодом 152| Ш]]
| [[Символ с кодом 153| Щ]]
| [[Символ с кодом 154| Ъ]]
| [[Символ с кодом 155| Ы]]
| [[Символ с кодом 156| Ь]]
| [[Символ с кодом 157| Э]]
| [[Символ с кодом 158| Ю]]
| [[Символ с кодом 159| Я]]
|- align="center"
! a
| [[Символ с кодом 160| а]]
| [[Символ с кодом 161| б]]
| [[Символ с кодом 162| в]]
| [[Символ с кодом 163| г]]
| [[Символ с кодом 164| д]]
| [[Символ с кодом 165| е]]
| [[Символ с кодом 166| ж]]
| [[Символ с кодом 167| з]]
| [[Символ с кодом 168| и]]
| [[Символ с кодом 169| й]]
| [[Символ с кодом 170| к]]
| [[Символ с кодом 171| л]]
| [[Символ с кодом 172| м]]
| [[Символ с кодом 173| н]]
| [[Символ с кодом 174| о]]
| [[Символ с кодом 175| п]]
|- align="center"
! b
| [[Символ с кодом 176| ÷]]
| [[Символ с кодом 177| ≥]]
| [[Символ с кодом 178| ≠]]
| [[Символ с кодом 179| ×]]
| [[Символ с кодом 180| ↑_]]
| [[Символ с кодом 181| ⟳]]
| [[Символ с кодом 182| (нет)]]
| [[Символ с кодом 183| ↔]]
| [[Символ с кодом 184| (нет)]]
| [[Символ с кодом 185| π]]
| [[Символ с кодом 186| (нет)]]
| [[Символ с кодом 187| (нет)]]
| [[Символ с кодом 188| (нет)]]
| [[Символ с кодом 189| <sup>2</sup>]]
| [[Символ с кодом 190| <sup>x</sup>]]
| [[Символ с кодом 191| <sup>y</sup>]]
|- align="center"
! c
| [[Символ с кодом 192| ↵]]
| [[Символ с кодом 193| ↤]]
| [[Символ с кодом 194| ⇤]]
| [[Символ с кодом 195| ⇥]]
| [[Символ с кодом 196| ←]]
| [[Символ с кодом 197| →]]
| [[Символ с кодом 198| ↑]]
| [[Символ с кодом 199| ↓]]
| [[Символ с кодом 200| ↖]]
| [[Символ с кодом 201| ↘]]
| [[Символ с кодом 202| ↔]]
| [[Символ с кодом 203| (нет)]]
| [[Символ с кодом 204| (нет)]]
| [[Символ с кодом 205| (нет)]]
| [[Символ с кодом 206| (нет)]]
| [[Символ с кодом 207| (нет)]]
|- align="center"
! d
| [[Символ с кодом 208| (нет)]]
| [[Символ с кодом 209| (нет)]]
| [[Символ с кодом 210| (нет)]]
| [[Символ с кодом 211| (нет)]]
| [[Символ с кодом 212| (нет)]]
| [[Символ с кодом 213| (нет)]]
| [[Символ с кодом 214| (нет)]]
| [[Символ с кодом 215| (нет)]]
| [[Символ с кодом 216| (нет)]]
| [[Символ с кодом 217| (нет)]]
| [[Символ с кодом 218| (нет)]]
| [[Символ с кодом 219| (нет)]]
| [[Символ с кодом 220| (нет)]]
| [[Символ с кодом 221| (нет)]]
| [[Символ с кодом 222| (нет)]]
| [[Символ с кодом 223| (нет)]]
|- align="center"
! e
| [[Символ с кодом 224| р]]
| [[Символ с кодом 225| с]]
| [[Символ с кодом 226| т]]
| [[Символ с кодом 227| у]]
| [[Символ с кодом 228| ф]]
| [[Символ с кодом 229| х]]
| [[Символ с кодом 230| ц]]
| [[Символ с кодом 231| ч]]
| [[Символ с кодом 232| ш]]
| [[Символ с кодом 233| щ]]
| [[Символ с кодом 234| ъ]]
| [[Символ с кодом 235| ы]]
| [[Символ с кодом 236| ь]]
| [[Символ с кодом 237| э]]
| [[Символ с кодом 238| ю]]
| [[Символ с кодом 239| я]]
|- align="center"
! f
| [[Символ с кодом 240| Ё]]
| [[Символ с кодом 241| ё]]
| [[Символ с кодом 242| (нет)]]
| [[Символ с кодом 243| (нет)]]
| [[Символ с кодом 244| (нет)]]
| [[Символ с кодом 245| (нет)]]
| [[Символ с кодом 246| (нет)]]
| [[Символ с кодом 247| (нет)]]
| [[Символ с кодом 248| (нет)]]
| [[Символ с кодом 249| (нет)]]
| [[Символ с кодом 250| (нет)]]
| [[Символ с кодом 251| √]]
| [[Символ с кодом 252| (нет)]]
| [[Символ с кодом 253| (нет)]]
| [[Символ с кодом 254| (нет)]]
| [[Символ с кодом 255| (нет)]]
|}
== Какие ещё символы хотелось бы видеть в шрифте 0 ==
[[Файл:Font0.png|thumb|right|256px|Существующий набор символов шрифта 0]]
[[Файл:Проект дополнения шрифта 0.png|thumb|right|256px|Один из возможных вариантов дополнения шрифта 0]]
* Девять нижних индексов (0, 1, 2, 3 и x, y, z, i, =), например f<sub>0</sub>(a,v) = a<sub>1</sub>v<sub>x</sub> + a<sub>2</sub>v<sub>y</sub> + a<sub>3</sub>v<sub>z</sub>
* Знак куба и четвёртой степени, например 10 м³, y=³√x и x⁴+x²-4=0
* Заглавные греческие «дельта», «омега» и «сигма», например Δt = 3 с, Δm = 65 кг, R = 1 kΩ, Σ<sub>i=0</sub><sup>4</sup> a<sub>i</sub>b<sub>i</sub> = 0; как максимум, возможно размещение остальных заглавных греческих, не имеющих аналогов в латинице и кириллице (тэта, кси, пси); заглавная «лямбда» может быть совмещена с кириллической «Л»
* Для удобства использования в качестве верхних индексов можно также добавить степени 0, 1, + и −, например c<sup>0</sup> = a<sup>1</sup>b<sub>1</sub>+a<sup>2</sup>b<sub>2</sub> и y<sup>−1</sup> = 4; Na<sup>+</sup> и Cl<sup>−</sup>
* Одиннадцать наиболее часто используемых в физике и математике строчных греческих букв: α, β, γ, δ, ε, λ, μ, ρ, σ, φ и ω (как минимум первые три из них; как максимум, можно разместить все строчные греческие, кроме, возможно, «омикрон», которая выглядит так же, как «о», а также «йота» и «ипсилон», которые практически не встречаются в формулах)
* Знак градуса и символ угла, например ∠α = 45° (градус может по совместительству играть роль верхнего индекса «0»)
* Знак номера и параграфа, например № 1, § 8
* Знак плюс/минуса, например L = 10 ± 2 см
* Знак приблизительного равенства, например π ≈ 3,14
* Символ пустого множества, например M = ∅
* Знак умножения в виде точки посередине строки, например, 5·10<sup>4<sup>
* Знак «меньше либо равно», например, x ≤ 0
Всего предлагается добавить в знакогенератор несколько десятков символов, что сделает его значительно более полезным для наглядных математических и расчётных программ.  Место в таблице для этого есть.  Но при желании его экономить можно перейти на двухбайтовые кодировки (на «Ямахах» первым байтом двухбайтовых символов был [[символ с кодом 1]]) или реализовать ограниченную поддержку Юникода.  При нехватке памяти в ПЗУ можно загружать расширенный (юникодовский) шрифт со встроенного электронного диска.  Главное, чтобы эти символы было легко выводить в [[строка комментариев|строку комментариев]] и на [[графический экран]], использовать в [[Графический интерфейс пользователя|графическом интерфейсе]].
== Управляющие символы ==
Символы с кодами от 0 до 31 традиционно играют роль специальных (служебных, управляющих) символов.  Из них ЭКВМ использует в качестве управляющих следующие символы:
* [[Символ с кодом 0]] — символ конца строки
* [[Символ с кодом 10]] — символ перевода строки
* [[Символ с кодом 13]] — символ возврата каретки
Среди оставшихся кодов в служебном диапазоне 0…31 некоторые используются в [[Шрифт 0|шрифте 0]] для вывода на экран ЭКВМ «стрелок» и других графических изображений.
Ещё один управляющий символ имеет [[Символ с кодом 255|код 255]].
== Примечание ==
<references />
== Ссылки ==
{{Документация|d1_pra.htm|Описание шрифтов ЭВМ на сайте НПП «СЕМИКО»}}
* [https://ru.wikipedia.org/wiki/CP866 Альтернативная кодировка и кодовая страница 866 на Википедии] и [https://en.wikipedia.org/wiki/Code_page_866 в английской Википедии] ''(англ.)''
* [https://ru.wikipedia.org/wiki/ASCII ASCII на Википедии]
* [https://msdn.microsoft.com/en-us/library/cc195074.aspx Кодовая страница 866 на сайте MSDN] ''(англ.)''
* [http://www.catb.org/~esr/jargon/html/A/ASCII.html ASCII на The Jargon File] ''(англ.)''
* [http://tinyurl.com/Znak-161 tinyurl.com/Znak-161] — короткий адрес этой страницы (через зарубежный сайт)
[[Категория:Символы]]
[[Категория:Шрифт]]

Текущая версия от 02:14, 14 января 2020

Набор символов ЭКВМ основан на альтернативной кодировке из ГОСТ 19768-87 и хорошо совместим с кодовой страницей 866 фирмы IBM, которая в свою очередь основана на фундаментальном американском стандарте ASCII, который используется с 1960-ых годов.

Основное достоинство «альтернативной» кодировки, помимо её широкой распространённости — русские буквы в ней идут в алфавитном порядке, хотя и не всегда последовательно. По историческим причинам[1] между строчными русскими буквами "п" и "р" наблюдается гигантский разрыв[2] в 48 символов. Исключением из алфавитного правила стала буква "Ё", получившая свой код позднее остальных русских букв.

Тексты на русском и английском языках, подготовленные в стандарте операционной системы MS-DOS, могут читаться на ЭКВМ без перекодировки. Тоже самое относится ко всем текстам в популярнейшей кодировке ASCII. Тексты, подготовленные в Юникоде и кодировках других операционных систем (MSX, Windows, Linux, OS X и др.), достаточно перекодировать в «стандарт MS-DOS», то есть кодовую страницу 866. На некоторых текстах можно достичь лучших результатов, если учитывать весь набор символов ЭКВМ.

0 1 2 3 4 5 6 7 8 9 a b c d e f
0 (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) "\t" "\n" (нет) (нет) "\r" (нет) (нет)
1 (нет) (нет) || (нет) (нет) (нет) (нет) (нет) (нет) (нет) " "
2 " "  ! " # $  % & ( ) + , . /
3 0 1 2 3 4 5 6 7 8 9  :  ; < = >  ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~
8 А Б В Г Д Е Ж З И Й К Л М Н О П
9 Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
a а б в г д е ж з и й к л м н о п
b ÷ × ↑_ (нет) (нет) π (нет) (нет) (нет) 2 x y
c (нет) (нет) (нет) (нет) (нет)
d (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет)
e р с т у ф х ц ч ш щ ъ ы ь э ю я
f Ё ё (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет) (нет)

Какие ещё символы хотелось бы видеть в шрифте 0[править]

Существующий набор символов шрифта 0
Один из возможных вариантов дополнения шрифта 0
  • Девять нижних индексов (0, 1, 2, 3 и x, y, z, i, =), например f0(a,v) = a1vx + a2vy + a3vz
  • Знак куба и четвёртой степени, например 10 м³, y=³√x и x⁴+x²-4=0
  • Заглавные греческие «дельта», «омега» и «сигма», например Δt = 3 с, Δm = 65 кг, R = 1 kΩ, Σi=04 aibi = 0; как максимум, возможно размещение остальных заглавных греческих, не имеющих аналогов в латинице и кириллице (тэта, кси, пси); заглавная «лямбда» может быть совмещена с кириллической «Л»
  • Для удобства использования в качестве верхних индексов можно также добавить степени 0, 1, + и −, например c0 = a1b1+a2b2 и y−1 = 4; Na+ и Cl
  • Одиннадцать наиболее часто используемых в физике и математике строчных греческих букв: α, β, γ, δ, ε, λ, μ, ρ, σ, φ и ω (как минимум первые три из них; как максимум, можно разместить все строчные греческие, кроме, возможно, «омикрон», которая выглядит так же, как «о», а также «йота» и «ипсилон», которые практически не встречаются в формулах)
  • Знак градуса и символ угла, например ∠α = 45° (градус может по совместительству играть роль верхнего индекса «0»)
  • Знак номера и параграфа, например № 1, § 8
  • Знак плюс/минуса, например L = 10 ± 2 см
  • Знак приблизительного равенства, например π ≈ 3,14
  • Символ пустого множества, например M = ∅
  • Знак умножения в виде точки посередине строки, например, 5·104
  • Знак «меньше либо равно», например, x ≤ 0

Всего предлагается добавить в знакогенератор несколько десятков символов, что сделает его значительно более полезным для наглядных математических и расчётных программ. Место в таблице для этого есть. Но при желании его экономить можно перейти на двухбайтовые кодировки (на «Ямахах» первым байтом двухбайтовых символов был символ с кодом 1) или реализовать ограниченную поддержку Юникода. При нехватке памяти в ПЗУ можно загружать расширенный (юникодовский) шрифт со встроенного электронного диска. Главное, чтобы эти символы было легко выводить в строку комментариев и на графический экран, использовать в графическом интерфейсе.

Управляющие символы[править]

Символы с кодами от 0 до 31 традиционно играют роль специальных (служебных, управляющих) символов. Из них ЭКВМ использует в качестве управляющих следующие символы:

Среди оставшихся кодов в служебном диапазоне 0…31 некоторые используются в шрифте 0 для вывода на экран ЭКВМ «стрелок» и других графических изображений.

Ещё один управляющий символ имеет код 255.

Примечание[править]

  1. Алфавит строчных русских букв был «разрублен», т.к. возможность читать русские тексты в зарубежной программе Norton Commander, сохраняя красивые «рамочки» из псевдографики, была неотразимо привлекательной. Псевдографика IBM была заменена в ЭКВМ на спецсимволы ПМК, но для сохранения совместимости с текстами, созданными в эпоху MS-DOS, позиции русских букв остались нетронутыми.
  2. Интересно, что хотя формально в Юникоде все русские буквы идут по порядку, такой же разрыв между русскими буквами "п" и "р" наблюдается в кодировке UTF-8: "п" кодируется D0 BF, а "р" уже D1 80.

Ссылки[править]