Плохая эргономика стандартной клавиатуры, о которой я писал в первой части дополняется плохой функциональностью имеющихся клавиш в современных интерфейсах.

Но чтобы делать такие выводы, важно разобраться, почему на стандартной клавиатуре именно такой набор клавиш и как он таким получился.

История клавиш компьютерной клавиатуры начинается с первой коммерчески-успешной пишущей машины — Ремингтон 1.

Клавиатуры бумажного интерфейса

В XIX веке бизнесу стало очевидно, что машины позволяют повысить эффективность любых рутинных процессов. Так механизация добралась до письма — появились пишущие машины, заменяющие рутинный труд писарей.

Первой коммерчески-успешной пишущей машиной была Ремингтон 1873 года. Рассмотрим эволюцию развития клавиатур начиная с нее.

Рисунок 1. Клавиатура пишущей  машины  Ремингтон  № 1  (1873)
Рисунок 1. Клавиатура пишущей машины Ремингтон № 1 (1873)

Клавиатура состояла из алфавитных, цифровых и нескольких пунктуационных клавиш.
Машина отпечатывала только ПРОПИСНЫЕ буквы.

Технически конструкция машины была относительно проста — нажатие клавиши приводило в движение рычаг с литерой соответствующей буквы, которая оставляла при ударе о бумагу свой отпечаток.

Для нормального отпечатка было необходимо не нажимать, а ударять пальцами по клавишам. Поэтому на первых клавиатурах невозможно было набирать всеми 10 пальцами (силы удара мизинца не хватало для хорошего отпечатка). Круглая, как мишень, форма клавиш позволяла делать удары точнее и эффективнее.

Клавиша пробела имела более легкий ход — технически она освобождала подпружиненную каретку (вал с бумагой), позволяя переместится ей на одну знаковую позицию вперед.
Длинная продольная форма клавиши пробела позволяла легко и поочередно нажимать её большими пальцами из любого положения обеих рук над клавиатурой.

Кроме букв, клавиатура содержала часто используемые в деловой и коммерческой переписке знаки:

  • ряд цифр 23456789. Цифра один 1 условно набиралась буквой I, а цифра ноль 0 буквой O. Именно поэтому буквы I и O находятся под цифровым рядом друг за другом;

  • нижней чертой _ обозначали графы для последующей рукописной записи;

  • знак дефиса -. Условно использовался (и используется по сей день) для записи тире и минуса ;

  • знак доллара $

  • знак амперсанд &, заменяющий для краткости союз and (англ. and — и).

Чтобы сделать письмо на машине более «живым» и схожим с рукописным требовались строчные буквы.

В 1879 году на машине Ремингтон № 2 появились две клавиши временной смены набора букв:

  • Upper Case для прописных букв (в переводе с английского — верхний ящик, который использовался в типографских кассах для прописных букв);

  • Lower Case для строчных букв (нижний ящик — использовался в типографских кассах для строчных букв).

Регистр по-умолчанию (строчные или прописные) определялся положением специального переключателя.
Теперь каждая клавиша приводила в движение рычаг с двумя литерами одной буквы: с прописной и строчной. При нажатии на клавишу Upper Case происходил поперечный сдвиг каретки, так что удар рычага о бумагу приходился на прописную букву. После отпускания клавиши, каретка возвращалась в исходное положение и удар приходился на строчную букву.
Если переключатель регистра был настроен на прописные буквы, то при нажатии на клавишу Lower Case печатались строчные буквы.

У нас в России, такой прием называли сменой регистра (по аналогии с клавиатурами музыкальных инструментов).

Клавиши смены регистра расположили так, чтобы их удобно было нажимать и удерживать неиспользуемыми мизинцами правой и левой руки.

В более поздних версиях Ремингтон № 2 эти клавиши стали обозначать Shift (англ. shift — сдвиг), что лучше отражало техническую суть способа переключения.
На современных клавиатурах клавиша с подписью Shift — яркий пример терминологического архаизма, так как никакого сдвига уже нет.

Рисунок 2. Клавиатура пишущей машины Ремингтон № 2 (1879). Символы верхнего (прописного) регистра обозначены сверху, нижнего (строчного) — снизу. Буквы обозначены только прописными
Рисунок 2. Клавиатура пишущей машины Ремингтон № 2 (1879). Символы верхнего (прописного) регистра обозначены сверху, нижнего (строчного) — снизу. Буквы обозначены только прописными

Так как размер и форму букв невозможно было изменить, прописные буквы стали использовать для выделения слов и заголовков. Заглавные и прописные буквы стали синонимами.

Благодаря появлению второго регистра кроме строчных букв, были добавлены знаки:

  • условные двойные кавычки " (традиционно в английском языке используются парные открывающие и закрывающие кавычки такие );

  • открывающая (и закрывающая ) скобки;

  • знак решетки # для обозначения номера;

  • знак процента %

  • универсальная дробная черта /, позволяющая набирать любые дроби (1/2, 3/4 и т. п.);

  • знак точки . расположен в верхнем регистре, так как после ее набора обычно следует прописная буква (создатели современной российской раскладки похоже этого не знали).

Недостающие знаки вписывали от руки или набирали наложением имеющихся знаков в одной позиции (для этого, чтобы не сдвигалась каретка, удерживали клавишу пробела), например:

  • восклицательный знак ! набирался знаками апострофа ' и точки .

  • знак цента ¢ набирался буквой c и дробной чертой /

  • знак плюс + набирали буквой l и дефисом -

  • знак деления ÷ набирали двоеточием : и дефисом -

  • знак черты _ использовали для подчеркивания слов.

  • знак at @ набирали наложением букв O и a.

  • в случаях когда ноль 0 нужно было отличать от буквы О, его перечеркивали дробной чертой Ø

  • на половину сдвинутая по вертикали каретка (полунажатая клавиша Shift) позволяла набирать знак равенства = двумя дефисами -, знак параграфа § двумя буквами S, знак умножения точкой . или знак умножения <u>×</u> буквой x.

К нам в Россию первые Ремингтоны поставлялись со следующей клавиатурой:

Рисунок 3. Русская клавиатура пишущей машины Ремингтон № 5 (1887)
Рисунок 3. Русская клавиатура пишущей машины Ремингтон № 5 (1887)
  • все знаки пунктуации расположены в строчном (нижнем) регистре, а цифры в прописном (верхнем);

  • цифра три 3 условно набиралась буквой земля З;

  • условные кавычки " (традиционно в русском языке используются парные открывающие и закрывающие кавычки-елочки «пример» );

  • французский знак номера ;

  • точку с запятой ; набирали наложением знаков двоеточия : и запятой , в одной позиции;

  • фиту Ѳ набирали буквой О и знаком дефиса -;

  • ижицу Ѵ условно набирали буквой У;

  • из-за большего количества букв в русском алфавите, был добавлен дополнительный столбец клавиш ЭХЖЮ.

  • букву ё набирали буквой е и кавычками ", заменяющими диакритический знак надстрочного двоеточия ¨.

На европейских пишущих машинах, чтобы упростить набор диакритических символов (^ ~ ˘ и пр. знаки ударений), использовали клавиши не перемещавшие каретку на следующую позицию.
Например на русской клавиатуре немецкой машины Адлер 8 (1912) не было клавиши для буквы й.
Для набора й нажималась клавиша и, а затем специальная клавиша знака кратка ˘.
Нажатие клавиши ˘ не сопровождалось сдвигом каретки и отпечаток приходился на предыдущую букву и.
Такая комбинированная буква й, состоящая из двух глифов (буквы и и кратки ˘) встречается в современных юникод-текстах и сегодня.

Такие клавиши, не приводящие в движение каретку, называли мертвыми.

Если при наборе была допущена ошибка, то замазывали/затирали или забивали буквой хер Х (отсюда слово похерить).
Для исправления ошибок приходилось вручную возвращать каретку с бумагой на нужную позицию.

Чтобы упростить вoзврат каретки для исправления ошибок и печати составных знаков в 1890-е годы на пишущих машинах Гаммонд 2 впервые появилась клавиша обратного хода Back Space (обратный пробел).
Нажатие на клавишу передвигало каретку на одну позицию назад
(аналогично действию современной клавиши перемещения курсора влево ).

Рисунок 4. Клавиатура пишущей машины Гаммонд 2 Идеал (1890-е)
Рисунок 4. Клавиатура пишущей машины Гаммонд 2 Идеал (1890-е)
  • появилась клавиша Back Space;

  • для переключения регистра прописных букв использовалась клавиша CAP capitals letters (заглавные буквы);

  • появился третий регистр FIG figures (цифры) для набора цифр, знаков и дробей. Механизм машины Гаммонд 2, позволял использовать дополнительный набор букв (другого алфавита или начертания);

  • знак at @ для обозначения предлога по (литр бензина @ 65 руб.);

  • знак звездочка * для обозначения сносок или пропущенных символов.

Гаммонд — пример машины XIX века с необычной для нас клавиатурой. Где-то в альтернативной реальности мы пользуемся более эргономичными клавиатурами по типу Гаммонда. Но в нашей реальности в 1890-е клавиатура Ремингтона, благодаря широкой распространенности, стала стандартом, и все последующее развитие клавиатур это ее крустификация новыми клавишами.

По мере обретения популярности, пишущие машины стали использовать не только для деловой переписки, но и для ведения ведомостей, составления счетов и прочих структурированных в табличной форме документов.
При заполнении таблиц приходилось многократно нажимать клавишу пробела для перехода в нужную графу.
Для упрощения заполнения таблиц в 1893 году был изобретен табулятор — механизм автоматического сдвига каретки в нужную позицию.
Необходимые для перемещения позиции устанавливались специальными скобами-ограничителями на рейке позади машины.
При нажатии на клавишу Tab каретка передвигалась до первого ограничителя, при повторном нажатии до второго и т. д.
Первой машиной, на которой появилась клавиша Tab стала Ундервуд 1 (1896).

Сегодня Microsoft Word и других текстовых процессорах до сих пор используются виртуальные табуляторные ограничители

и сохранена логика их взаимодействия с клавишей Tab.

Кроме клавиши табулятора на машинах Ундервуд появилась клавиша фиксации верхнего регистра Shift Lock (стопор сдвига).
Теперь не требовалось держать клавишу Shift при наборе прописными буквами (до этого на многих машинах у клавиши Shift имелась защелка для ее фиксации, но пользоваться ей было не так удобно, как отдельной клавишей).

Рисунок 5. Клавиатура пишущей машины Ундервуд 5 (1908)
Рисунок 5. Клавиатура пишущей машины Ундервуд 5 (1908)
  • появились клавиши Tab и Shift Lock;

  • часто используемую запятую , расположили в обоих регистрах для удобства набора прописными буками (при зажатой клавише Shift Lock), а высвободившийся вопросительный знак ? и дробную черту / расположили на одной клавише. Впоследствии точку . также расположили в обоих регистрах, а вопросительный знак ? совместили с дробной чертой /;

  • в цифровой ряд добавлена клавиша для цифры 0, высвободившийся дефис - перенесли на дополнительную клавишу со знаком звездочки *, добавили часто используемые дроби;

  • добавили клавишу со знаками @ и ¢.

IBM, перфокарты и электрические пишущие машины

Если с помощью машины можно заполнять таблицы с цифрами, то почему бы не сделать машину, которая будет эти цифры складывать.
Этот вопрос напрашивался сам собой, но технологии оптического распознавания символов в конце XIX века еще не существовало.

Тогда, инженер Герман Холлерит создал табулятор — счетно-аналитическую машину, суммирующую числа записанные в виде пробитых на бумажной карточке отверстий.
Карточки пробивались операторами в определенных позициях при помощи перфоратора Холлерита, состоящего из цифровой клавиатуры.
Затем карточки складывались в табулятор, который «прощупывал» каждую карточку с помощью электроконтактов, замыкающихся в позициях отверстий, и суммировал полученные таким образом числа.

Табуляторы значительно упростили труд бухгалтеров, финансистов и специалистов других профессий, связанных со счётом.

В 1920-х компания Холлерита стала частью международной корпорации машин для бизнеса — IBM.

Машина для сверки чеков IBM 803
Машина для сверки чеков IBM 803

Изначально клавиатура перфоратора состояла только из цифр, расположенных в трех столбцах в «телефонном» порядке. Такое расположение клавиш было выбрано не из соображений эргономики, а для технического упрощения устройства перфоратора.

В 1928 году в IBM была создана алфавитно-цифровая кодировка для перфокарт (BCDIC).
Каждая карта представляла из себя таблицу из 12 строк и 80 столбцов.
В каждом столбце с помощью отверстий кодировался определенный символ.
Цифры кодировались одним отверстием в одной из 9 строк. Буквы кодировались двумя отверстиями: одним в цифровых строках и одним в дополнительных строках.

Рисунок 6. а —  перфоратор Холлерита. Для  набора  первых  9 букв английского алфавита вместе с цифрой  пробивалось  отверстие  в  12  строке  перфокарты,  для  наборе следующих 9 букв в 11 строке перфокарты, последних букв — в 0 строке. Нижняя клавиша  — пробел; б — счетная машина Sundstrand (1916)
Рисунок 6. а — перфоратор Холлерита. Для набора первых 9 букв английского алфавита вместе с цифрой пробивалось отверстие в 12 строке перфокарты, для наборе следующих 9 букв в 11 строке перфокарты, последних букв — в 0 строке. Нижняя клавиша — пробел; б — счетная машина Sundstrand (1916)

Каждая карта условно соответствовала одной строке данных (текста и чисел) длинной 80 символов.
Несколько перфокарт образовывали собой массив данных, который быстро подсчитывался табулятором.

Важно заметить, что цифровая клавиатура с «телефонным» порядком цифр (123) использовалась только для ввода данных на перфокартах.
Для расчетов использовали счетные машины с другим порядком цифр (789), принятом на широко распространенной в те времена счетной машине Sundstrand (1916).

В 1935 году, IBM начала выпуск электрифицированной пишущей машины IBM Electric 01 (на основе машины Ремингтон 12).

Электрификация машины позволяла набирать текст легкими нажатиями на клавиши, активирующими соленоиды печатающих рычагов.

Однако, при этом возникла проблема набора мелких знаков.
На обычных пишущих машинах для хорошего отпечатка мелких знаков с малой площадью печати, таких как точка . или апостроф ' было достаточно легкого нажатия. Привычный для набора букв удар по клавишам этих знаков приводил к сквозному пробою бумаги.

Электрическая машина не позволяла варьировать силу удара в зависимости от выбранного регистра, поэтому расположение цифры 2 и кавычки " на одной клавише приводило или к плохо отпечатанной 2 или пробою бумаги кавычкой ".
По этой причине на электрических пишущих машинах IBM мелкие знаки были выделены на отдельные клавиши.

Электрифицировали и функцию возврата каретки.
На обычных пишущих машинах при окончании строки, необходимо протянуть всю каретку назад за специальный рычаг. При этом, кроме возврата на начало строки происходит переход на новую строку (прокручивание каретки) и завод пружины, приводящей каретку в движение.
Впервые клавиша возврата каретки Return и перехода на новую строку Lift появились в 1890 году на пишущей машине Rapid. Первой электрифицированной машиной с такой же функцией была Blickensderfer electric (1902). Однако эти машины не обрели популярность.

Рисунок 7. клавиатура пишущей машины IBM Electric 01 (1935)
Рисунок 7. клавиатура пишущей машины IBM Electric 01 (1935)
  • появилась клавиша Return для автоматического перехода на новую строку;

  • добавлена цифра 1, впоследствии (IBM Select 1961) перемещенная в цифровой ряд и совмещенная с восклицательным знаком !.

  • добавлены арифметические знаки + =

  • мелкие знаки ' " и - _ сгруппированы на отдельных клавишах, а на их место перенесены @ ¢ *.

Пишущие машины IBM к середине XX века стали доминировать в бизнес-среде и их клавиатура стала новым стандартом де-факто.
Кроме того они оказали еще одно важное влияние на современные клавиатуры.
К 1950-м форма клавиш машин IBM изменилась с классической круглой
(капсульной) на квадратную.

  1. Квадратная форма клавиш улучшала структурное восприятие клавиатуры: клавиши с подписями выглядели как таблица, а не россыпь монеток.

  2. Теперь для хорошего отпечатка не нужно было ударять в центр клавиши, а можно было нажать ее хоть с края. Поэтому, чтобы уменьшить промахи в промежутки между клавишами, их форму сделали квадратной, а если клавиша находилась на углу, то ей придавали форму угла.

Рисунок 8. Сравнение клавиатур IBM Electric 01 и IBM Electric A
Рисунок 8. Сравнение клавиатур IBM Electric 01 и IBM Electric A

Телетайпы

На телеграфных аппаратах (устройствах для передачи информации на расстояние при помощи электрических сигналов по проводам) клавиатуры появились задолго до пишущих машин. В самых простых телеграфных аппаратах использовалась одна клавиша, кодирующая сигнал — ключ Морзе.
Более сложные телеграфные аппараты позволяли отправлять буквы, набираемые на клавиатуре фортепьянного типа. Сообщения при этом распечатывались принимающим аппаратом на бумажной ленте.

По мере широкого распространения пишущих машин, появились телеграфные аппараты совмещенные с ними.
Наиболее успешной компанией, занимавшейся производством таких аппаратов была американская Телетайп (Teletype Corporation). Ее название стало нарицательным для производимых аппаратов.

По своему устройству телетайп был электрической пишущей машиной, не только печатающей сообщение, но и передающей его по телеграфным проводам на другую машину, автоматически распечатывающую сообщение (телепринтер).

Нажатие на клавишу модулировало сигнал соответствующей буквы по пятибитному телеграфному коду Бодо (ITA2). На каждый сигнал отводилось 300 миллисекунд в течении которых можно было отправить (или не отправить) пять импульсов. Каждый импульс ● или его отсутствие ○ соответствовало одному биту, а весь сигнал — байту.
Принимающая машина преобразовывала сигнал и печатала соответствующую ему букву на листе бумаги.

Например буква A кодировалась двумя импульсами
●●○○○
Такой (пятибитный) код имел всего 32 комбинации (2⁵).

Буквы были отсортированы в кодовой таблице не в алфавитном, а в частотном порядке, так чтобы самым частым буквам соответствовали самые простые комбинации, например ●○○○○ для наиболее частой в английском языке буквы E. Это позволяло снизить износ оборудования.

Кроме букв, цифр и пунктуационных знаков телетайпам была необходима передача управляющих «символов» для правильной синхронизации процесса набора.

До появления телетайпа, сообщения распечатывались на бумажной ленте, которая обрезалась и вклеивалась в телеграммный бланк.

Набор сообщения на бумажном листе был значительно сложнее. Так, если строка набираемого текста заканчивалась, то необходимо было передать два сигнала: для возврат каретки и для перевода строки.
Почему два сигнала, а не один? Команда возврата каретки не всегда сопровождалась командой перевода строки, так как если в текущей строке была допущена ошибка, нужно было произвести возврат каретки на начало строки, перейти (с помощью пробела) к ошибке, забить ее, и после этого переходить на новую строку.
А для записи данных в определенном столбце, нужна была только команда перевода строки, без возврата каретки.

Перед началом отправки сообщения, как на телефонах, использовалась функция звонка, вызываемая управляющим сигналом/символом звонка BEL | ЗВ .

Очевидно, что 32-х комбинаций сигналов было не достаточно для всех букв и символов, поэтому для расширения кода использовались кодовые регистры:
управляющая команда ЦИФ (цифровой регистр) с кодом
●●○●●
означала, что все последующие коды должны восприниматься не как буквы, а как цифры и знаки.
Команда ЛАТ (латинские буквы) с кодом ●●●●● возвращала аппарат в регистр букв.

Рисунок 9. Клавиатура телеграфного аппарата Teletype model 15 (1930). 32 клавиши соответствуют 32 кодам
Рисунок 9. Клавиатура телеграфного аппарата Teletype model 15 (1930). 32 клавиши соответствуют 32 кодам
  • клавиша CARRET для возврата каретки и отправки соответствующего кода управляющего символа CR;

  • клавиша LINE FEED для перехода на новую строку и отправки кода LF;

  • клавиша FIGS для перехода в регистр цифр и отправки кода FIGS;

  • клавиша LTRS для перехода в регистр букв и отправки кода LTRS.

Важной особенностью телетайпов была возможность записи набираемого текста на бумажной ленте в виде пробитых отверстий, соответствующих коду Бодо. Такая перфолента, позволяла производить набор записанного на ней текста в автоматическом режиме. Это значительно упрощало отправку рутинных сообщений.

Несколько лент можно было склеивать друг с другом, верстая текст без необходимости его набора.
Ошибки на ленте забивались 5 отверстиям ●●●●● (что соответствовало переходу в регистр букв и никак не интерпретировалось аппаратом находящемся в буквенном регистре).

Для возможности вставки в шаблонное сообщение разных адресатов, в определенных позициях ленты резервировались пустые места при помощи клавиши Blank key (крайняя правая клавиша на рисунке 9).
При нажатии на клавишу передавался пустой код ○○○○○ (ПС или NUL) и лента передвигалась на одну позицию без перфорации отверстий.
Данный код использовался также для перехода в третий регистр. На западе он использовался для специальных символов (например для символов метеосводок), а у нас для перехода в регистр русского алфавита.

На советских телетайпах также использовался код Бодо (MTK-2), но буквы на клавиатуре были расположены в привычном для русскоязычного оператора порядке ЙЦУКЕН.

При этом русским буквам соответствовали коды их фонетических аналогов латинского алфавита (Ф=F, Д=D, Г=G, и т. д.), что было принято в телеграфе еще с середины XIX века и позволяло не заучивать разные коды для схожих букв разных алфавитов. Например в азбуке Морзе латинской букве S и русской букве С соответствует код ··· , а латинской и русской букве О код ---, что позволяет безошибочно отправлять сигнал бедствия SOS.

Рисунок 10. Клавиатура телеграфного аппарата СТ-35 (1935)
Рисунок 10. Клавиатура телеграфного аппарата СТ-35 (1935)
  • клавиша перехода в регистр русского алфавита РУС и клавиша возврата в регистр латинского алфавита ЛАТ;

  • ⧗ — символ-сокращение вопроса кто там? (WRU — who are you?) для идентификации принимающего аппарата;

  • ⍾ — управляющий символ звонка (ЗВ или BEL) имел один код с буквой Ю. При нажатии клавиши в латинском регистре происходил звонок, а в русском печаталась буква Ю;

  • буква Ч и цифра 4 имели одинаковый код и начертание;

  • из-за ограниченности кода редкие русские буквы Ш Щ Э Ч Ю были в цифровом регистре;

  • клавиша < или ВК для возврата каретки;

  • клавиша или ПС для перевода строки;

  • цифровой ряд 1234567890. Для цифр пришлось выделить дополнительный ряд клавиш, так как расположение букв в порядке ЙЦУКЕН ломало всю структуру дополнительных символов, расположенных в кодовой таблице под порядок букв QWERTY (букве Q соответствовала цифра 1, букве W цифра 2 и т. д.).

Чтобы снизить износ аппарата из-за постоянных переключений регистра, знаки препинания обычно заменяли буквенными сокращениями зпт для запятой, тчк для точки и т. д.

И сегодня такой прием ввода редких символов при помощи букв (с последующей автозаменой), на мой взгляд, намного удобнее переключения в дополнительный регистр и поиска нужного символа на клавиатуре.

Использование дополнительных символов или команд (например табуляции) было невозможно из-за ограниченности используемого 5-битного кода (32 символа в регистре), а для перехода на 7-битный код требовалась замена всех телетайпов.

На Teletype 28 (1951) для решения этой проблемы использовались управляющие последовательности кодов и специальный модуль для их расшифровки — Stunt Box.

С телетайпа отправлялся код, сообщавший принимающему аппарату о том, что следующие символы нужно воспринимать, не как буквы, а как команды управления.

Например для создания табуляции, клавиатуру переводили в режим отправки команд сочетанием LTRS+H+FIGS и нажимали клавишу T. Принимающий телетайп интерпретировал такую последовательность как табуляцию и отбивал ее.

То есть по сути это был дополнительный регистр, не требующий обратного переключения — авторегистр .
Впоследствии использовалась специальная клавиша перехода в режим командных последовательностей — ESC, у нас она обозначалась АР (Авторегистр).

Тем не менее, постоянное переключение регистров сильно замедляло работу аппаратов и приводило к ошибкам из-за их рассинхронизации.

В 1963 ведущие телекоммуникационные компании разработали новый международный телеграфный 7-битный код ISO 646 принятый в США как ASCII
(American standard code for information interchange), а у нас как КОИ-7 (7-битный код для обмена и обработки информации).
Код содержал все необходимые для телетайпов управляющие символы и все символы используемые в пишущих машинах тех лет.

Чтобы код был применим для вычислительных машин цифры расположили в кодовой таблице по возрастающей, а буквы в алфавитном порядке.
Например:
цифра 1 соответствовала байту
○●● ○○○●
цифра 2 получалась прибавлением одного бита к 1
○●● ○○

буква A соответствовала байту
●○○ ○○○●
буква B получалась прибавлением одного бита к A
●○○ ○○

Символы расположили в кодовой таблице так, чтобы изменение 5-го бита нажатием клавиши SHIFT меняло цифру на символ, соответствующий ей на обычной пишущей машине.
Например:
клавиша 2 отправляла байт
○●● ○○●○
нажатие клавиш SHIFT+2 инвертировало 5-ый бит и отправляло байт соответствующий символу "
○● ○○●○

К середине XX века цифры на клавиатурах обычных пишущих машин соотносились с символами следующим порядком:

! " # $ % _ & ' ( )
1 2 3 4 5 6 7 8 9 0

Знак нижней черты _ не использовался в телеграфах, поэтому его не включили в первую версию ASCII (1963 года), а
цифру 0
○●● ○○○○
логично соотнесли в верхнем регистре с пробелом
○●○ ○○○○

Остальные знаки просто сдвинули, получив следующее соотношение символов (цифра 0 соотносится с пробелом):

! " # $ % & ' ( )
1 2 3 4 5 6 7 8 9 0

Клавиатуры с таким расположением символов (когда SHIFT менял 5-ый бит) называли битно-парными.

Оставшееся место в кодовой таблице заняли символы, используемые в математических нотациях:

  • прямоугольные скобки [], для обозначения матриц.

  • обратная дробная черта \. Использовалась для записи символов (логическое или) и (логическое и) в сочетании с дробной чертой: /\ и \/. Также использовалась для целочисленного деления, например 10\3=3.

  • знак вертикальной черты | .

  • знаки больше и меньше > < расположили вместо дублирующихся на пишущих машинах в прописном регистре точки . и запятой ,

  • стрелки и для блок-схем.

Первым устройством, использующим код ASCII, стал Teletype 33 (1963 года), но уже в 1967 году код ASCII был доработан:

  • появились строчные буквы (большинство устройств до 1970-х не имели возможности печати/отображения строчных букв и при получении кода строчной буквы, она заменялась прописной);

  • добавили диакритические знаки, используемые в европейских алфавитах (è ñ ô) : гравис (мягкое ударение) ` , тильду ~, циркумфлекс ^ или карет (от названия корректурного знака вставки Λ-образной формы, используемого для указания в предложении места, куда нужно вставить дополнительное слово);

  • стрелку вверх заменили на знак циркумфлекс ^, а стрелку влево заменили на знак подчеркивания _, используемый для записи словосочетаний без_пробелов;

  • добавили фигурные скобки {} для обозначения объединенных блоков данных.

Отсутствие кодовых регистров увеличило скорость обмена данными.
Но регистры остались на аппаратном уровне клавиатуры (для экономии клавиш).

Регистр пунктуационных и других специальных символов (СС) вызывался клавишей SHIFT.

Регистр символов управления (СУ) вызывался клавишей CTRL (control).

Обе клавиши не отправляли коды, а изменяли их.

Подобно изменению 5-го бита клавишей SHIFT, клавиша CTRL меняла 7-й бит.

Например:
клавиша K отпечатывала букву K и отправляла байт, соответствующий букве K
●○○ ●○●●
нажатие клавиш SHIFT+K отпечатывало знак скобки [ и отправляло байт, соответствующий знаку скобки [
●○ ●○●●
нажатие CTRL+K ничего не отпечатывало, а отправляло байт, соответствующий команде вертикальной табуляции
○○ ●○●●
нажатие CTRL+SHIFT+K отправляло байт, соответствующий команде ESC
●○●●

Рисунок 11. Клавиатура телеграфного аппарата Teletype model 33 ASR (1967)
Рисунок 11. Клавиатура телеграфного аппарата Teletype model 33 ASR (1967)
  • клавиша CTRL для перехода в регистр управляющих символов.

  • клавиша SHIFT для специальных символов (пунктуационных; буквы использовались только прописные).

  • клавиша ESC для отправки управляющих и графических символов, отсутствующих в ASCII аналогично упомянутой функции Stunt Box. Отправляла код ESC (escape) или АР2 (авторегистр 2) означающий, что следующую набранную букву нужно интерпретировать как определенную управляющую функцию или знак вне кодировки ASCII (выйти за пределы ASCII). Ранее, в телетайпе версии 1963 года для этого использовалась клавиша ALT MODE, которая обнуляла 8 бит для передачи альтернативного значения кодов.

  • клавиша RETURN для возврата каретки и отправки управляющего символа CR или ВК

  • клавиша LINE FEED для перехода на новую строку и отправки кода LF или ПС

  • клавиша BREAK или ПРВ для прерывания линии связи.

  • клавиша DELETE (в версии 1963 года RubOut) нажималась для «забоя» предыдущего неверно набранного символа при записи текста на перфоленте и отправки кода DEL или ЗБ . Код соответствовал байту ●●● ●●●●, так что на перфоленте пробивались все отверстия, «стирая» любой ранее записанный символ.

  • клавиша REPEAT или ПВТ (повтор) нажималась вместе с другой клавишей для непрерывной отправки ее кода.

  • клавиша HERE IS включала автоответ для идентификации станции и обозначения ее готовности к приему.

Остальные управляющие команды вызывались через управляющий регистр:

  • CTRL+HBS (Backspace) или ВШ возврат каретки на шаг (позицию) назад (аналогично клавише перевода курсора влево ).

  • CTRL+IHT (Horizontal Tabulation) или ГТ горизонтальная табуляция, т. е. сдвиг каретки на предопределенное количество знаковых позиций вперед.

  • CTRL+OSI (Shift In) или ВХ вход в режим расширенного набора графических символов. У нас команда использовалась для смены алфавитов (кодовой таблицы) с русского на латинский. Обратная команда — SO (Shift Out) или ВЫХ (выход) . Для удобства использовались отдельные клавиши РУС и ЛАТ, отправляющие соответствующие коды ВХ и ВЫХ.

Терминалы для ЭВМ

Вернемся к компании IBM, ставшей к середине XX лидером в производстве вычислительных машин.
К 1960-м их механические машины для простого суммирования значений на перфокартах (табуляторов) сменились огромными электронными вычислительными машинами (ЭВМ) для автоматической обработки информации и сложных расчетов.
На западе ЭВМ называли общим словом — компьютер (от англ. computer — вычислитель, расчетчик).

ЭВМ управлялся и обслуживался инженерно-техническими специалистами со специальных пультов управления (консолей).

Чтобы дать задание ЭВМ на необходимый порядок обработки исходных данных и их расчета, в нее вводилась программа команд.
Ввод исходных данных и алгоритмов для их обработки ЭВМ осуществлялся с помощью перфокарт, заранее подготовленных на перфораторах, упомянутых выше.
Программы алгоритмов обработки данных составляли специалисты, называемые программистами, а данные заполняли операторы.

Ни операторы, ни программисты не имели непосредственного доступа к ЭВМ, а только готовили пакет исходных данных.

Такой подход работы с ЭВМ был не очень удобен для оперативного решения задач.

В 1959 году появился первый ЭВМ для оперативного (интерактивного) взаимодействия — DEC PDP-1.
Для ввода и вывода информации использовалась модернизированная (компанией Soroban) пишущая машина IBM, передающая набранный текст на ЭВМ и распечатывающая его ответы, подобно телетайпу.
Также, подобно телетайпу, такие машины позволяли записывать и считывать текст с перфолент.

Общение с ЭВМ стало подобно диалогу: оператор набирал в одной строке команду и нажимал клавишу Return для выполнения команды и перехода на новую строку, а ЭВМ печатал в новой строке ответ. Пишущие машины позволяли менять цвет отпечатка с черного на красный, так что строка набранная пользователем отличалась по цвету от строки, набранной ЭВМ.

Влияние клавиатур на языки программирования

Так символы присутствовавшие на клавиатурах пишущих машин стали использоваться в синтаксисе языков программирования и команд для ЭВМ.
Звездочка * стала использоваться для умножения, так как была наиболее похожа на традиционный символ умножения ×, дробная черта / для деления.
Для остальных математических операторов использовались краткие слова-аббревиатуры. Например знак < записывали словом .LT. (less then), а знак > записывали словом .GT. (greater than).
Для привыкших к традиционной математической нотации первых программистов это было непривычно. Поэтому производители ЭВМ настаивали на том, чтобы в новую кодировку ASCII были включены все математические символы.

С появлением стандарта ASCII компания DEC стала использовать в качестве устройств ввода и вывода упомянутый выше Teletype 33.
Устройства ввода и вывода назывались общим словом терминал (от латинского terminalis — конечный пункт).

Рисунок 12. Мини-ЭВМ DEC PDP-7 (в центре) с Teletype  33 в качестве терминала (справа)
Рисунок 12. Мини-ЭВМ DEC PDP-7 (в центре) с Teletype 33 в качестве терминала (справа)

Влияние языков программирования на клавиатуры

Программа набиралась с клавиатуры Teletype 33 на бумажном листе и одновременно передавалась на ЭВМ. ЭВМ выполнял программу и распечатывал результат с новой строки.
С конца 1960-х базовым языком программирования был Бейсик.
Так некоторые правила использования клавиатуры Teletype 33 для написания программ на Бейсик повлияли на дальнейшее развитие клавиатур.
Например:

  • код клавиши Return указывал ЭВМ, что необходимо выполнить набранную в строке команду;

  • код клавиши Esc означал, что набранную команду не нужно выполнять (например если команда содержала ошибки);

  • код клавиши Delete означал, что последний набранный символ ошибочный и его не нужно учитывать как часть команды (впоследствии для удаления неверно набранного символа стали использовать клавишу Backspace);

  • вызываемый комбинацией CTRL+C код управляющей команды ETX (конец текста) означал, что необходимо прервать выполнение программы;

  • символ в Teletype 33 версии 1963 года, впоследствии замененный на символ ^, означал возведение в степень.

Экранные терминалы

Программы и базы данных представляли из себя стопки перфокарт или катушки перфолент, без возможности их редактирования, что значительно снижало производительность труда программистов и операторов.

Для решения этой проблемы IBM выпустили в 1964 году экранные терминалы IBM 2260 для ЭВМ System/360, используемых в банках (обработка запросов и транзакций по счетам), торговле (отслеживание товаров на складах и анализ продаж), авиакомпаниях (бронирование и продажа билетов) и в других сферах, где быстрый доступ к данным имел решающее значение.
У нас подобные терминалы использовались в единой системе резервирования билетов на авиалиниях (СиРенА) с начала 1970-х.

Если раньше оператор набирал данные на перфокарте с выделенными полями, то теперь он набирал эти же данные на экране терминала.
Затем он проверял их и отправлял всю заполненную на одном экране информацию в ЭВМ.

На экране данные вводились в место, обозначенное визуальным маркером — курсором (от англ. cursor — риска на бегунке логарифмической линейки).
В каждую из 12 строк умещалось 80 символов (как на одной перфокарте).

Главная новация была в возможности исправления набранного текста. Для этого курсор перемещался специальными клавишами в нужную позицию слова и поверх старых символов набирались новые, а чтобы стереть лишние символы, поверх них набирали пробел.

IBM 2260

Рисунок 13. Клавиатура экранного терминала IBM 2260 (1964)
Рисунок 13. Клавиатура экранного терминала IBM 2260 (1964)
  • новая клавиша Enter (ввод) для отправки набранных на экране данных в ЭВМ;

  • клавиша Down (вниз) для перемещения курсора на следующую строку, Up (вверх) для перемещения на предыдущую строку;

  • клавиша Bksp (Backspace) для перемещение курсора влево, Advance (продвижение вперед) для перемещения курсора вправо;

  • Shift+AdvanceSpace / Erase (стирание) вставка пробела вместо буквы в позиции курсора.

  • клавиша Print для отправки на принтер отображаемого на экране текста;

  • комбинацией Shift+ Up Start — обозначали начало поля для ввода данных, а комбинацией Shift+ Down New Line — окончание поля для ввода данных в текущей строке и переход к новой (чтобы случайно не набрать текст поверх названий полей, которые располагались с правой стороны экрана);

  • для быстрого перехода курсора между обозначенными полями использовалась клавиша Tab.

Нажатие на клавишу теперь не сопровождалось ударом литеры о бумагу, так что было не ясно, работает ли оператор, или просто втыкает в экран. Чтобы исправить этот «недостаток», в клавиатуры терминалов устанавливали соленоид, имитирующий стук клавиш пишущей машины, а перед достижением конца строки раздавался звуковой сигнал.

Терминалы IBM были предназначены для пакетного взаимодействия: ЭВМ высвечивал пользователю форму во весь экран, необходимую для заполнения и последующей передачи клавишей Enter.

Совсем иначе работали терминалы интерактивных ЭВМ (например DEC PDP): каждый набранный символ передавался и интерпретировался ЭВМ.
Это позволяло использовать для управления ЭВМ командные сочетания с клавишами CTRL и ESC, как на терминалах.

Datapoint 3300

Первые терминалы с экранами на замену Teletype 33 для интерактивных ЭВМ были представлены компанией Datapoint (Computer Terminal Corporation) в 1967 году.
Теперь программы можно было вводить и исправлять прямо с экрана.
По конфигурации клавиш первые видеотерминалы терминалы не отличались от Teletype 33 и поэтому часто назывались стеклянными телетайпами.

Рисунок 14. Клавиатура терминала Datapoint 3300 (1967)
Рисунок 14. Клавиатура терминала Datapoint 3300 (1967)
  • клавиши управления курсором были выделены в отдельный блок и обозначены стрелками . Такое обозначение было интуитиво понятнее, чем на клавишах IBM 2260.

  • появились клавиши HOME UP для быстрого перемещения курсора в первую позицию первой строки и HOME DOWN для перемещения курсора в первую позицию последней строки.

  • клавиша RETURN переводила курсор на начало строки в текстовом режиме (аналогично современной клавише Home). В операционных системах DEC (OS/8, RSTS) и программных средах Return использовался для выполнения (ввода в ЭВМ) записанной в строке команды (аналогично клавише Enter на терминалах IBM).

  • клавиша LINE FEED переводила курсор на следующую строку и была равносильна клавише . В программных средах переводила курсор на начало новой строки для продолжения записи не умещающейся в одну строку команды;

  • появился дополнительный цифровой блок для пользователей, привыкших к использованию счетных машин;

  • клавиша ERASE EOS (Erase to End of Screen) для удаления данных от позиции курсора до конца экрана;

  • клавиша ERASE EOL (Erase to End of Line) для удаления данных от позиции курсора до конца строки;

  • клавиша RubOut. В операционных системах (OS/8, RT-11) удаляла последний введенный символ (аналогично сегодняшней клавише Backspace);

  • клавиша ESC использовалась для дополнительных команд и символов, отсутствующих в ASCII;

  • клавиши ROLL UP и ROLL DOWN использовались для считывания перфоленты в прямом и обратном направлении.

DEC VT05

В 1970 году DEC представила свой первый видео-терминал VT05 для своего мини-ЭВМ PDP.

Рисунок 15. Клавиатура терминала DEC VT05 (1970)
Рисунок 15. Клавиатура терминала DEC VT05 (1970)
  • появились отдельные клавиши для новых символов ASCII (1967) [ { ] } ^ ~ |;

  • клавиша Shift lock для блокировки верхнего регистра символов (терминал отображал только прописные буквы);

  • чтобы случайно не удалить набранные данные, клавиши EOL и EOS нажимались одновременно с клавишей LOCK;

  • клавиша для команды ESC обозначалась Alt (аналогично Alt Mode на Teletype 33 (1963)).

Несмотря на то, что для частых команд (таких как перемещение курсора, переход на новую строку, табуляцию и пр.) имелись свои клавиши, опытные пользователи Teletype model 33 по привычке вызывали их комбинациями с клавишей CTRL, например:
CTRL+H =
CTRL+J =
CTRL+I = TAB
CTRL+M = CR
Преимущество такого вызова команд в том, что не нужно перемещать руки с основной позиции на периферию клавиатуры.

Перемещение курсора в нужную позицию экрана при помощи клавиш занимало много времени. Для ускорения существовал режим CAD (Cursor Direct Addressing) прямой адресации курсора. Комбинация CTRL+N переводила клавиатуру в CAD режим, после чего вводилась координата нужной позиции курсора по горизонтали и по вертикали. Координаты указывались не цифрами, а всеми символами ASCII по их порядковому номеру.

ADDC 880

При заполнении данных операторам часто требовалось вставлять недостающие буквы в уже набранном слове.

Еще на терминале IBM 2260 был придуман особый режим «нестирающего» курсора, в котором буквы под курсором не стирались, а сдвигались вправо по мере набора.
Курсор в обычном режиме обозначался вертикальным прямоугольником █ , а в нестирающем горизонтальным ▃. Для смены обычного режима набора на режим вставки появилась клавиша переключатель INSERT (вставка).
Сегодня везде по умолчанию используется режим вставки, но в некоторых случаях (редактирование текстовых таблиц или кода) режим набора заменой текста бывает удобнее.

В дополнение клавише INSERT появилась клавиша DELETE выполняющая обратное действие — удаление символов под курсором со сдвижкой последующего текста влево.

Рисунок 16. Клавиатура терминала ADDC 880 (1970)
Рисунок 16. Клавиатура терминала ADDC 880 (1970)
  • клавиша INSERT для перехода в режим вставки символов;

  • клавиша DELETE для удаления символов со сдвижкой;

  • клавиша NEW LINE (новая строка) для перехода на начало новой строки;

  • клавиши START TAG и STOP TAG для обозначения полей ввода данных;

  • клавиша SCREEN ERASE для очистки содержимого экрана или полей. Если на экране были подписи полей то их можно было защитить от отчистки клавишей FORMAT ON или не защищать FORMAT OFF.

  • клавиша PAGE включала режим для передачи данных на ЭВМ страницами;

  • клавиша MESG включала режим для передачи данных строками;

  • клавиша PRINT ON включала принтер для распечатки набираемого текста, клавиша PRINT OFF его выключала.

IBM 3270

IBM были верны своим традициям, сохранив расположение символов (в вернем регистре цифрового ряда) как на своих электрических пишущих машинах, так что опытным пользователям не было необходимости переучивать клавиатуру.
Для сопоставимости кодировок одна клавиша могла образовывать разные символы. Например в программных средах цифра 1 в верхнем регистре образовывала символ условной черты |, а при наборе текста символ восклицательного знака ! (при этом символ настоящей черты (по стандарту ASCII) отображался ломанным ¦).
Такой же подход использовался для символа логического нет ¬, заменяемого на символ карет ^. К концу 1970-х клавиатуры IBM стали выпускаться в модификациях, соответствующих стандарту ASCII: знак ¢ заменили на ^, а знак ¬ на \.

Вместо клавиши Repeat, используемой для непрерывного набора символа, IBM добавили функцию typamatic — удержание клавиши приводило к ее непрерывному набору.

Вместо клавиш CTRL и ALT, для вызова управляющих функций, были добавлены 12 настраиваемых функциональных клавиш PF1...PF12, что сокращало количество нажатий и вероятность ошибки при вводе комбинации.

Коды функциональных клавиш интерпретировались по-разному в зависимости от запущенной программной среды.

Рисунок 17. Клавиатура (Type B 66/78-key Keyboard) для 3275/3277 Display Station  (1972)
Рисунок 17. Клавиатура (Type B 66/78-key Keyboard) для 3275/3277 Display Station (1972)
  • клавиша New Line (со схематичным обозначением) для перехода на начало новой строки, в случае если запись не умещалась в одну строку (такие схематичные нотации клавиш позволяли интуитивно понять принцип команды, но с другой стороны ухудшали понятийное восприятие клавиш);

  • клавиша CLEAR для очистки всего экрана;

  • клавиша ERASE INPUT для очистки всех полей ввода данных (на форматированном экране);

  • клавиша ERASE EOF (End of Field) для очистки поля данных под курсором;

  • TEST REQ (Request) — проверочное обращение к ЭВМ для проверки работоспособности терминала;

  • PA1 (Program Access) — настраиваемые клавиши для взаимодействия с ЭВМ;

  • PF1 (Program function) — функциональные клавиши для отправки команд, предопределенных программной средой.

  • табуляция и переход между полями ввода данных;

  • обратная табуляция и обратный переход между полями ввода данных;

  • клавиша LOCK для фиксации заглавного регистра. На специальных клавиатурах для ввода цифровых данных вместо неё была клавиша Numeric Lock , фиксирующая цифровой регистр. Примечательно, что при переходе курсора в цифровое поле клавиатура автоматически переключалась в цифровой регистр. Это позволяло быстро набирать числа, не переводя руки из исходного положения и не нажимая никакие дополнительные клавиши.

  • DUP (Duplicate) — дублирование информации из предыдущего поля.

  • клавиша FIELD MARK для обозначения полей ввода данных;

  • RESET — разблокировка терминала (например, если он блокировался при отправке данных).

DEC VT52

Один из самых распространенных экранных терминалов DEC.

Рисунок 18. Клавиатура терминала DEC VT52 (1975)
Рисунок 18. Клавиатура терминала DEC VT52 (1975)
  • клавиша фиксации прописного регистра переименована в клавишу CAPS LOCK (в отличии от Shift Lock, который изменял регистр букв и символов, Caps Lock изменял только регистр букв, что упрощало набор прописными буквами);

  • клавиша SCROLL для отображения следующей строки на экране (чтобы отобразить сразу весь следующий экран нажималась комбинация SHIFT+SCROLL);

  • клавиша COPY распечатывала копию текста, отображаемого на экране на специальном рулонном принтере, встроенном в терминал.

Расположение символов, как и в клавиатурах IBM, стало соответствовать привычной для англоязычных пользователей клавиатуре электрических пишущих машин.
Но в других странах (Россия, Япония), битно-парные ASCII клавиатуры оставались стандартом для терминалов.

IBM 5251

В 1977 появилась клавиатура IBM Type B (83-key Typewriter Keyboard) для полу-автономных терминалов IBM 5251 Display Station.

Рисунок 19. Клавиатура (Type B Keyboard) для 5251/5252 Display Station (1977)
Рисунок 19. Клавиатура (Type B Keyboard) для 5251/5252 Display Station (1977)
  • CMD (command) клавиша командного регистра;

  • FIELD EXIT — клавиша подтверждения заполнения поля данных;

  • ENTER / REQ ADV (Record Advance) — клавиша передачи заполненных данных;

  • FIELD+ — подтвердить заполнения поля с числом, обозначая его как положительное;

  • FIELD- — подтвердить заполнения поля с числом, обозначая его как отрицательное;

  • HELP — запроса дополнительной информации;

  • ROLL⭣ ROLL⭡ — отображение следующего или предыдущего экрана с данными.

Персональные компьютеры

В 1970-х стали появляться доступные для энтузиастов мини-ЭВМ (компьютеры), представляющие из себя только блок с процессором. Компьютеры выполняли программы на языке Basic. А ввод данных осуществлялся посредством самых распространенных и доступных терминалов, таких как Teletype 33 и их экранных аналогов.
Даже первые серийные персональные компьютеры, такие как Apple II (1977), TRS-80 (1977) оснащались клавиатурами аналогичными Teletype 33.

IBM Type F

Когда в 1981 году IBM решила выйти на рынок персональных компьютеров, им пришлось подстраиваться под существующие практики.
Первый IBM PC был создан в сжатые сроки, времени на разработку новой клавиатуры не было, так что за основу была взята существующая клавиатура от упомянутого выше терминала IBM 5251, адаптированная под работу с Basic и MS-DOS.

Рисунок 20. Клавиатура IBM Type F персонального компьютера IBM (1981)
Рисунок 20. Клавиатура IBM Type F персонального компьютера IBM (1981)
  • убраны не используемые в ПК клавиши для связи терминала с ЭВМ;

  • клавиши PgUp (Page Up) и PgDn (Page Down) вместо ROLL⭡ и ROLL⭣;

  • добавлены клавиши для символов ASCII [ { ] } ^ ~ в порядке как на клавиатурах терминалов DEC (vt100);

  • появилась новая для клавиатур IBM клавиша вызова команд Ctrl;

  • появилась новая для клавиатур IBM клавиша ESC, используемая не для командных последовательностей, а для выхода или отмены набранной в строке команды (как это было принято в Basic).

  • клавиша ALT — аналог каноничной клавиши ESC для командных последовательностей. Клавиша позволяла:

    • набор любого символа ASCII по его номеру (набранному с цифрового блока);

    • быстрый ввода частых команд, например alt+p — print, alt+e — else, и т. д.

    • быстрый запуск команды по первой букве ее названия, например alt+r — run;

    • замена клавиши RESET для перезапуска системы сочетанием CTRL+ALT+DEL;

  • функциональные клавиши в отдельном блоке (используемом ранее для функций связи);

  • курсорные клавиши перенесены в цифровой блок, а переключение между режимом курсорных клавиш и режимом ввода цифр осуществлялся клавишей Num Lock.

  • единая клавиша Enter и Carriage return;

  • клавиша табуляции объединена с клавишей обратной табуляции (при удержании клавиши Shift);

  • клавиша Scroll Lock для включения режима перемещения между экранами при помощи курсорных клавиш;

  • клавиша Backspace стала стирать символы вместе с перемещением курсора влево;

  • клавиша Break для остановки текущей операции например в случае, если она зависла или выполнялась слишком долго (альтернативой была только перезарузка). Чтобы случайно не остановить программу, Break нажимался с клавишей Ctrl .

  • Pause использовалась для временной приостановки вывода результата выполнения программы.

Благодаря авторитету IBM их персональные компьютеры разбирали как пирожки.
Способствовало этому и высочайшее качество и надежность клавиатуры.
Поэтому у большинства пользователей не было к ней никаких претензий.
Но более опытные пользователи ставили ей в пример клавиатуры DEC.

DEC LK201

В 1984 году DEC выпустила терминал VT200 с клавиатурой LK201.
Отличительная особенность клавиатуры была в том, что она была разделена на блоки. Однако, если присмотреться, то в дизайне LK201 можно увидеть отголоски клавиатуры упомянутого терминала ADDC 880.

Рисунок 21. Клавиатура LK201 для DEC vt220 (1984)
Рисунок 21. Клавиатура LK201 для DEC vt220 (1984)
  • compose создает символы, отсутствующие на клавиатуре. Например для набора знака цента ¢ нажималась комбинация клавиш compose+c+|;

  • find — найти строку;

  • select — (mark) выделить;

  • remove — (cancel) удалить выделенное;

  • цифровой блок использовался как функциональный для некоторых программ. Например - копировала выделенный текст, а повторное нажатие вставляло его на месте курсора.

IBM Model M

В 1985 году для промышленных компьютеров IBM 7531 была создана новая клавиатура — IBM Model M. Для персональных компьютеров она стала доступна в 1986 году.

Рисунок 22. Клавиатура (Type M Keyboard) для IBM (1985)
Рисунок 22. Клавиатура (Type M Keyboard) для IBM (1985)
  • клавиша Caps Lock возвращена на своё место, а Ctrl вынужденно перенесен под клавишу Shift, так что для ввода комбинаций приходится растягивать пальцы или использовать две руки;

  • новая клавиша SysRq (System Request) предполагалась для переключения между операционными системами.

Трудности перевода

Глядя на компьютерную технику сегодня, создается впечатление, что у нас никогда ничего не производилось своего.
Однако в 1970-80-е, когда доступа к зарубежной технике не было, у нас производились свои терминалы и компьютеры.
Клавиатуры этих компьютеров разрабатывались с учетом российской машинописной традиции (порядок букв ЙЦУКЕН) и современных компьютерных кодировок (КОИ-7).
Для переключения на латинский алфавит и обратно на русский существовали удобные клавиши ЛАТ и РУС.
При этом, чтобы не учить английскую раскладку, русским буквам соответствовали фонетически-аналогичные буквы английского алфавита.
Символы располагались в битно-парном порядке, как на первых терминалах.
Подписи управляющих клавиш были на русском языке.

Рисунок 23. Клавиатура БК-7 для терминала Электроника 15ИЭ-00-013 (1980)
Рисунок 23. Клавиатура БК-7 для терминала Электроника 15ИЭ-00-013 (1980)

Терминал был совместим с DEC VT52, так что клавиатура имеет схожую функциональность.

  • СБР — сброс (CLEAR), очистка запоминающего устройства дисплея и всей информации на экране;

  • СТР — стирание страницы (ERASE EOS) от позиции курсора до конца страницы;

  • СТС — стирание строки (ERASE EOL) от позиции курсора до конца строки;

  • АР2 — авторегистр 2 (ESC);

  • ПРД — передача страницы;

  • ПРМ — прекратить передачу / возобновить передачу;

  • ПРС — передача строки;

  • ПЧ — режим печати / передачи;

  • ДУП — режим дуплекса / полудуплекса;

  • ЛИН — режим линии / автономный;

  • РЕД — режим редактирования данных для блочной передачи содержимого на экране;

  • СДВ — сдвиг текста при наборе (INSERT);

  • ТАБ — аннулировать команду;

  • ГТ — горизонтальная табуляция;

  • — фиксация на символе перед курсором (для его редактирования);

  • — возврат на начало страницы;

  • — возврат каретки

  • — сдвиг текста вниз и вверх по одной строке

  • — смыкание и размыкание (сдвиг текста влево и вправо от позиции курсора), прекратить передачу

  • — перейти к началу следующей строки

  • РУС — переход к набору русских букв КОИ-7;

  • ЛАТ — переход к набору латинских букв КОИ-7.

В 1990-х, когда персональные компьютеры (IBM PC и их клоны) пришли на российский рынок, никому не было дело до адаптации клавиатуры под русскоязычных пользователей.

IBM model M для России

Рисунок 24. Клавиатура IBM model M для России
Рисунок 24. Клавиатура IBM model M для России
  • символы в режиме русского алфавита не соответствуют символам английского алфавита;

  • не все символы доступны из режима русского алфавита;

  • сложное переключение алфавитов сочетанием клавиш Alt+Shift или т. п.

Несмотря на недостатки российской локализации мы смогли к ним привыкнуть и довольно быстро набирать тексты на руссом и английском языке.

Соответствие клавиатуры современным потребностям

Почему после 1986 года клавиатуры перестали развиваться?

  1. После долгих поисков лучшей клавиатуры для IBM PC, было принято решение остановится на лучшем варианте (IBM model M). Клавиатура была стандартизирована ISO в 1994 году и ANSI в 1998 году.

  2. IBM и Microsoft создали операционные системы (OS/2, Windows) с виртуальными кнопками, так что для новых функций теперь не требовалось создавать новые клавиши на клавиатуре.

Последняя причина кажется наиболее весомой. Зачем создавать новую клавиатуру, если через некоторое время появятся новые функции и она снова устареет?
Клавиатура перестала успевать за развитием интерфейса и застыла в своем развитии на уровне интерфейсов 1980-х годов.

Несмотря на то, что для уверенного использования современных интерфейсов мы можем отказаться от доброй половины клавиш в пользу более удобного расположения оставшихся, мы продолжаем использовать стандартную клавиатуру для работы, для игр как старый швейцарский нож для стрижки овец и разделки мяса.

Заключение

Современные интерфейсы становятся все более интуитивными и независимыми от клавиатуры.
Все больше команд выполнятся не клавиатурой, а мышкой или сенсорным нажатием.
С развитием ИИ управляющие комбинации клавиш в скором будущем станут архаизмом.

Примером современной клавиатуры, не обремененной архаичными приемами набора, является клавиатура телефона.

Уже сегодня мы не используем командные клавиши на телефонах, обходясь только буквами.
Клавиша Shift теряет свою значимость, так как компьютер сам может понять какая нужна буква: строчная или прописная.

То же касается пробелов, без которых писали еще задолго до появления компьютеров.

Тем не менее, физическая клавиатура удобна для набора букв, как никакая другая.
Темпоритм набора, приятные тактильные ощущения, живой звук клавиш не сравнятся с бездушными нажатиями холодного сенсорного экрана.

Мысли, идеи, данные, которые мы передаем компьютеру состоят из слов.
Мы сознаем и обмениваемся информацией в виде слов, а не знаков препинания и команд.

Чем больше мы можем концентрироваться на наборе слов, а не команд и знаков препинания, тем эффективнее наш рабочий процесс.

Довольно лишь клавиш букв.

Автор: Леонов Илья

Комментарии (26)


  1. maedv
    02.07.2025 17:10

    а мышкой или сенсорным нажатием
    Ой, да нифига. В машинах уже пошел откат назад и в телефонах будет, когда придумают нормальный сенсорный отклик.
    И заодно бы повесить на суку первого придумщика уменьшенных стрелок на клавиатуре ноутбуков


  1. Tzimie
    02.07.2025 17:10

    DЕЖИЦЕ НОТ ФОУНД

    (Из молодости на фрязенских терминалах)


  1. askv
    02.07.2025 17:10

    Когда-то подрабатывал набором текстов, так вот не владея десятипальцевым методом набора, печатать обычные тексты было сильно невыгодно: тексты дешевле, а времени тратишь много. Набирал математические в LaTeX'е, там необходимость быстрого набора была не так актуальна из-за значительно более высокой стоимости. Потом обучился 10-пальцевому набору, стало сильно проще в работе. Ничего лучше, чем методика Соло на клавиатуре от Шахиджаняна не нашёл. Теперь предпочитаю максимум набирать на обычной клавиатуре, на телефоне или планшете только по жёсткой необходимости. Когда был ноут, вместе с ним таскал обычную клавиатуру, так как печать на плоской клавиатуре ноута не получалось. Нужна обычная.


    1. me21
      02.07.2025 17:10

      О, фотка из Екатеринбурга!


  1. asatost
    02.07.2025 17:10

    Современные интерфейсы становятся все более интуитивными и независимыми от клавиатуры.

    Аншлаг вроде закрылся давно, нет?

    Уже сегодня мы не используем командные клавиши на телефонах, обходясь только буквами.

    Вы не используете, а кто-то ещё как используют. И разница в реализации клавиатур в эмуляторе терминала, RDP-клиенте и каком-нибудь AnyDesk надоела до ужаса.

    Довольно лишь клавиш букв.

    А не кажется ли Вам, что многовато будет? Может ограничиться кнопками "кю" и "ку"?


    1. askv
      02.07.2025 17:10

      0 и 1


  1. SquareRootOfZero
    02.07.2025 17:10

    Примером современной клавиатуры, не обремененной архаичными приемами набора, является клавиатура телефона.

    Всем она оберемененна, только это всё скрыто за дополнительной кнопкой. Вот что должно быть в голове, чтобы сравнить нормальную клавиатуру со смартфонной в пользу последней??


  1. norguhtar
    02.07.2025 17:10

    Оо lapa. Ставлю лайк


  1. LeshaRB
    02.07.2025 17:10

    Вот не знаю почему так
    Клава ноута мак меня устраивает
    А вот если другой ноут (марка) или внешняя должен быть полноценный enter и блок клавиш с числами


  1. inkelyad
    02.07.2025 17:10

    Тут интересен вопрос почему ножные педали не пытались (или очень слабо пытались) применить. Музыканты же пользуются - и ничего. А у нас всякие Shift и прочие контрольные - сами же просятся. Пока педаль в пол - пишет капсом. Отжал - снова нормальный текст и так далее.


    1. eimrine
      02.07.2025 17:10

      Всё просто - очень сложно найти педаль которая бы поддерживала операцию "отжатие". Пользователи vi такую воспримут за счастье, даже если не думали про такой девайс раньше.


      1. inkelyad
        02.07.2025 17:10

        Всё просто - очень сложно найти педаль которая бы поддерживала операцию "отжатие".

        Не понял сценария и аргумента. Отжатие - это отмена нажатия, нет? Просто снимаешь ногу с педали и все.


    1. Wosk1947
      02.07.2025 17:10

      Если есть желание, то такое делается за 10 минут из ардуинки, кнопки и картонки, можете потестить и рассказать, как оно. Скорее всего готового решения нет потому, что это несет массу неудобств. Во-первых во времена проводов это был бы плюс еще один девайс, то есть плюс еще один кабель, плюс еще один порт на системнике или ноуте или на самой клавиатуре, но для этого еще и специальную клавиатуру пришлось бы выпускать. А в беспроводные времена оно уже стало бы не особо-то и нужно, потому что на тот момент уже не так нужно было огромные текста набирать, где оно могло бы ускорить или облегчить работу. Во-вторых это не очень эргономично. Не знаю, как у вас, но у меня ноги на полу если и стоят во время использования компьютера, то они стоят в разных местах, в зависимости от угла поворота меня к монитору, от того, сместился ли я влево или вправо относительно стола и т.д., а постоянно нащупывать для печати ногами этот девайс или подъезжать к нему на кресле - такое себе удовольствие (ведь непрерывная долгая печать - это опять же очень редкий кейс в современном мире). Я уже молчу про ноутбук, суть которого в компактности и возможности разместиться с ним на диване или кушетке. Такой девайс мог бы пригодиться в играх, в которых долгие сессии и сложное управление. И он там есть - педальки для различных симуляторов.


      1. inkelyad
        02.07.2025 17:10

        Если есть желание, то такое делается за 10 минут из ардуинки, кнопки и картонки, можете потестить и рассказать, как оно.

        Я не про сейчас. А вот про те времена, когда клавиатура была единым целым со столом и рабочим местом. Вон та тумбочка-телетайп с клавиатурой на Рис 12 с DEC PDP-7 -- что там мешало пару педалей поставить?


        1. askv
          02.07.2025 17:10

          Возможно, клавиатура больше воспринималась ещё и как пульт управления, которым должно быть удобно управлять стоя. И потом, до клавиатур были пишущие машинки. Вы можете себе представить пишущую машинку с педалями?


          1. inkelyad
            02.07.2025 17:10

             Вы можете себе представить пишущую машинку с педалями?

            Вообще, могу. В органе вон - клавиш для рук, пожалую, побольше будет чем на клавиатуре. Но все равно педалей много.


            1. askv
              02.07.2025 17:10

              Тогда это было бы явно не переносное устройство. Тогда как обычная пишущая машинка портативная и ничем не уступает варианту с педалями.


              1. inkelyad
                02.07.2025 17:10

                Даже если и так - рабочее место первых компьютеров, очевидно, переносным не планировалось.

                Но когда потребовались дополнительные клавиши (которых на пишущей машинке нет) - добавили именно клавиши рядом, а не прикрутили педали к той же самой тумбочке.


      1. askv
        02.07.2025 17:10

        Видел старые швейные машинки с какими-то педалями. Потом стали выпускаться более портативные без педалей.


        1. Rikkitik
          02.07.2025 17:10

          Современные швейные тоже с педалями, только другими. Это необходимость, так как одновременно с приведением в движение механизма надо двумя руками тканью рулить, если цель сделать что-то сложнее прямой строчки.


  1. S-trace
    02.07.2025 17:10

    Примером современной клавиатуры, не обремененной архаичными приемами набора, является клавиатура телефона.

    Да ладно?? А почему на скриншоте один огромный архаизм?

    Да-да, я про тот который ЙЦУКЕН..МИТЬБЮ.

    Для сенсорных экранов придуманы совсем другие способы, к примеру того же относительно известного свайпа по всем буквам слова одним росчерком (переходная стадия между физической клавиатурой и сенсорным экраном) и далее в сторону "неклассических" методов ввода, при виде которых у незнающих людей немножко ломается моск, к примеру "Messagease Keyboard" - можно даже одной рукой печатать на ходу, чисто мыяечной памятью, и при этом не требуется точно попадать по крошечный кнопочкам в 25мм^2 (в лучшем случае) - новые клавиатуры используют новые аппаратные возможности и особенности.

    Просто инерция мышления и сила привычки очень велика, и поэтому везде сейчас эти йцукены суют (и уж лучше наверное йцукен, чем абвгд). Но, думаю, на мобилах рано или поэдно йцукены уйдут (но на больших экранах ещё хз, могут и сохраниться)


  1. NeoCode
    02.07.2025 17:10

    Я вот думаю что существующих символов мало. Особенно для языков программирования, где символы "больше" и "меньше" используются также как угловые скобки, что создает серьезные трудности при парсинге. Т.е. нужны как минимум еще несколько пар скобок - например 〈 〉 ⟦ ⟧ , может быть неплохо было бы иметь стрелки → ← ↑ ↓ ↗↘ ↖↙ и треугольники ▷ ◁ ∆ ∇, некоторые математические символы ∀∃ ⊕ ⊗ ∅ ∈ ∋ ∞∩ ∪ ∧ ∨, еще что-то типа ✅ ◇ ⃞

    По идее это еще одно значение (или даже два) для каждой алфавитно-цифровой клавиши. Хотя наверное время уже ушло, и сейчас никто не будет выпускать клавиатуры с какими-то новыми символами.


    1. allter
      02.07.2025 17:10

      Различные варианты Space Cadet Keyboard периодически появляются. Но зачем? У математиков теперь есть TeX...


    1. vitaliy0000
      02.07.2025 17:10

      Это легко делается с помощью XCompose, назначая символы (и даже последовательность символов) на определённые Вами последовательностью клавиш, что гораздо удобнее, чем Alt+длинный_код на цифровой клавиатуре (в Windows).

      Например, (в моём config-е для него)
      «ComposeKey» + «-» + «>» даёт «→», а
      «ComposeKey» + «=» + «>» даёт «⇒»!
      Подобные комбинации для других направлений стрелок (клавиша для направления вверх — «^», вниз — «v») и много прочего запоминается очень просто.

      В стандартной «поставке», кстати, «ComposeKey» + «0» + «0» даёт «∞», а «ComposeKey» + «e» + «=» даёт «€» (достаточно часто используемый символ, который появился, когда символы на клавиатуре уже «устаканились»).

      Отличная штука, рекомендую!

      P.S.: все символы в этом сообщении набраны с клавиатуры, в том числе кавычки-«лапки».
      P.P.S.: ComposeKey можно назначить любую клавишу, у меня она назначена на CapsLock.


  1. ts347
    02.07.2025 17:10

    Спасибо за статью. Она замечательная. Кроме заключения, которое, мягко говоря, спорно. Ну не хочу я перемещать курсор мышью и доверять расстановку заглавных букв ИИ.

    На клавиатуре «из восьмидесятых» действительно много неиспользуемых или очень редко используемых клавиш. И при этом для такой частой операции, как закрытие окна, нужно нажимать Alt+F4. И клавиша Insert так и напрашивается вместо Ctrl+V. И так далее. В скольких программах вы используете, например, F8? «Я нажал F8, и весёлый Нортон удалял мне всё подряд...»

    Microsoft могла бы ввести в Windows новые функции клавиш или удобных сочетаний для часто совершаемых современными пользователями действий. Но это поломает работу кучи существующих программ, и, кажется, тут ничего уже не поделать. Да и массовому пользователю это не очень нужно. Вернее, они не понимают, что им это нужно — потому что Ctrl+C, Ctrl+V и Alt+Tab осваивают очень быстро даже люди, от которых этого никак не ожидаешь.

    Переключение языка — вечная боль. Появление Win+space избавило меня от необходимости нажимать на чужом компьютере Ctrl+Shift,Alt+Shift, но само по себе это сочетание совершенно ужасное.


    1. allter
      02.07.2025 17:10

      И при этом для такой частой операции, как закрытие окна, нужно нажимать Alt+F4

      А это разве плохо? Хуже, если бы для этого требовалось бы [случайное] нажатие одной кнопки. Как в странных клавиатурах, которые продавались в начале нулевых неопытным пользователям, в которых кнопка выключения была расположена рядом с PgDn.

      Переключение языка — вечная боль

      К счастью, в X-Window из коробки можно настроить переключение с параметрами:
      XKBOPTIONS="grp:lctrl_lwin_rctrl_menu,grp:alt_shift_toggle,grp_led:scroll"
      Т.е. левый Ctrl + Win - английский, правый Ctrl + Menu - русский (ну и переключалка Alt+Shift на всякий случай и для посторонних). И статус отображается индикатором Scroll Lock (если включён, значит активна русская раскладка).