Клавиатура
Клавиатура — основное устройство ввода и управления компьютером.
Оригинальный ZX Spectrum имел 40-кнопочную клавиатуру. Клавиши были резиновыми (аналогичные используемым в калькуляторах), не обеспечивавшими чёткой обратной тактильной связи. Для частичного устранения этого недостатка во встроенном интерпретаторе языка Бейсик реализовано звуковое подтверждение при нажатии клавиш.
Поле стандартной клавиатуры содержит 26 алфавитных, 10 цифровых, пробел и три служебных клавиши — ввод (Enter) и две клавиши регистра, так называемые шифты (Symbol Shift и Caps Shift, сокращённо SS и CS). Все остальные необходимые действия, реализованные на полноценных клавиатурах в виде отдельных клавиш, выполняются комбинациями шифтов с другими клавишами.
В интерпретаторе Бейсика используется токенизированный ввод, позволяющий вводить управляющие слова нажатием одной клавиши. Так как количество слов существенно больше, чем количество клавиш, для ввода части слов также используются различные комбинации шифтов с обычными клавишами. Ввиду отсутствия возможности посимвольного ввода управляющих слов это требует запоминания множества комбинаций клавиш — около пяти вариантов использования каждой клавиши. Для частичного устранения этого недостатка на клавиши нанесены обозначения по специальной системе.
В модели ZX Spectrum+ главным улучшением стало использование расширенной 58-кнопочной клавиатуры. Дополнительные клавиши имитируют нажатие наиболее часто используемых сочетаний клавиш — например, управление курсором. При этом с программной точки зрения интерфейс клавиатуры не изменился, что, с одной стороны, не требует наличия программной поддержки расширенных клавиш в уже существующем ПО, но, с другой стороны, не позволяет отличить расширенные клавиши от клавиш, входящих в комбинацию.
Все модели ZX Spectrum 128K используют такую же клавиатуру, как и ZX Spectrum+, но у моделей ZX Spectrum +2 и ZX Spectrum +3 отсутствуют обозначения комбинаций клавиш, так как интерпретатор Бейсика для режима 128K не использует токенизированный ввод.
Отечественные клоны ZX Spectrum использовали клавиатуры различных типов и раскладок, включая 40-кнопочные и расширенные; механические, плёночные и герконовые. Также использовались стандартные клавиатуры типа МС7007 с нанесённой дополнительной маркировкой. Некоторые клоны имели дополнительные клавиши, опрашиваемые через биты 5 и 7 клавиатурного порта (Спарк/Аллофон, Орель БК-08) и поддерживаемые очень ограниченным количеством программ.
Из-за недоступности нестандартных клавиатур при широком распространении клавиатур стандарта AT (в недавнем прошлом) и PS/2, современные клоны используют специальные контроллеры, позволяющие использовать современные клавиатуры без их переделки. Такие контроллеры могут являться как отдельным устройством, так и присутствовать в компьютере штатно. Простые варианты контроллеров могут замедлять работу компьютера, генерируя сигнал WAIT, так как им требуется время для преобразования данных, получаемых от клавиатуры в требуемый набор сигналов.
Аппаратный интерфейс
Аппаратно кнопки клавиатуры представляют собой матрицу восемь на пять линий — восемь полурядов по пять кнопок. В зависимости от адреса, использованного при обращении к порту клавиатуры, в младших пяти битах возвращается состояние клавиш одного из восьми полурядов. Такая схема создаёт «эффект матрицы» (matrix effect) — при нажатии двух клавиш (одного полуряда) одновременно с третьей клавишей (в одном столбце с первой) возникает паразитное нажатие в полуряду третьей клавиши, соответствующее столбцу второй. Этот эффект можно ликвидировать размещением диода на каждой клавише.
Раскладка клавиш в Sinclair BASIC
В интерпретаторе Бейсика реализовано несколько режимов ввода. Текущий режим отображается в виде буквы-курсора. Режим ввода может изменяться автоматически, в зависимости от ситуации, а также может изменяться пользователем. Режимы:
- L (Letters?) — ввод строчных букв и цифр;
- C (Caps Lock?) — ввод заглавных букв и цифр;
- K (Keyword?) — активизируется, когда интерпретатор ожидает ввода управляющего слова, алфавитные клавиши вводят слова;
- E (Extend Mode) — вызывается одновременным нажатием Symbol Shift и Caps Shift, нажатие клавиш вводит дополнительные управляющие слова;
- G (Graphics) — ввод псевдографических символов и символов, изображение которых определяется пользователем.
- При нажатии алфавитной клавиши в режиме курсора K вводятся слова, указанные на клавише белым шрифтом левее и ниже буквы;
- Нажатие цифровой клавиши в режимах K и L вводит цифру;
- Нажатие алфавитной клавиши в режиме L вводит строчную букву, нажатие совместно с Caps Shift — заглавную букву;
- Нажатие цифровой клавиши в режимах K и L совместно с Caps Shift выполняет действие, указанное белым цветом над цифровыми клавишами (функции редактирования, управление курсором);
- Нажатие любой клавиши совместно с Symbol Shift вводит символ или слово, указанные на клавише красным шрифтом слева от основной буквы;
- Нажатие любой клавиши в режиме E вводит слова, указанные над клавишами (зелёным шрифтом);
- Нажатие любой клавиши в режиме E совместно с Symbol Shift вводит слова, указанные под клавишами (красным шрифтом).
Клавиатура zx spectrum раскладка клавиатуры
ПРИЛОЖЕНИЕ С ( ЧАСТЬ 1)
ОПИСАНИЕ КОМПЬЮТЕРА ZX SPECTRUM
Каждая клавиша клавиатуры компьютера ZX SPECTRUM имеет много-
функциональное назначение и позволяет вводить как отдельные символы, так
и целые слова. Действие, производимое клавишей, определяется частично
переключающими клавишами (CAPS SHIFT и SIMBOL SHIFT), а частью
режимом, в котором находится компьютер.
Режим отображается курсором, мерцающей буквой, указывающей
позицию, в которую будет вводиться очередной символ с клавиатуры.
Возможны следующие режимы:
• [К]-(для ключевых слов ) Keywords.
Этот режим автоматически сменяет режим [L], если компьютер пере-
ходит в ожидание ввода команды или строки программы. Это может быть
либо в начале строки, либо после THEN, либо после И если не было на-
жатия переключающих клавиш, то нажатие любой клавиши будет интерп-
ретироваться как ключевое слово (написанное на клавише) или цифра.
• [L] — (для букв) Letter.
Основной режим для компьютера. Если не было переключения
регистров, то клавиша интерпретируется как основной символ, нанесённый
на эту клавишу.
Для обоих оежимов [L] и [К] при нажатии с клавишей одновременно и
клавиши SYMBOL SHIFT, клавиша будет интерпретироваться как вспомога-
тельный символ. А при нажатии CAPS SHIFT с цифрои. клавиша будет интер-
претироваться как управляющая функция, написанная на белом поле клавиши.
Нажатие CAPS SHIFT с любой из клавиш не вызывает ключевого слова
в режимах [К] и [L].
• [С] — (для заглавных букв) Capital.
Режим представляет собой вариант режима [L], в котором используются
заглавные буквы.
CAPS LOCK используется для перехода из режима [L] в [С] и обратно.
• [Е] — (для расширения) Extend.
Используется для получения дополнительных символов, главным обра-
зом знаков. Этот режим вводится одновременным нажатием двух переклю-
чающих клавиш, с удержанием затем только одной клавиши. В этом режиме
клавиша даёт один символ или знак (изображённый на зелёном поле
клавиши), если не нажата переключающая клавиша, или знак, изображённый
на красном поле, если удерживается переключающая клавиша.
Цифровые клавиши выдают знак, если нажимаются вместе с SYMBOL
SHIFT, в противном случае они выдают последовательность управления цве-
том.
• [G] — (для графики) Graphics.
Режим вводится после нажатия GRAPHICS (CAPS SHIFT и «9 й ) и сохра-
няется до следующего нажатия этой клавиши.
Цифровые клавиши будут выдавать мозаичные графические символы,
сохраняя GRAPHICS и DELETE, а каждая алфавитная клавиша, кроме V, W, X.
Y и Z, будет выдавать определённый пользователем графический символ.
Если некоторая клавиша будет удерживаться более 1—2-х секунд, это
вызовет повторение производимого ею действия.
Ввод с клавиатуры производится в нижнюю часть экрана. Каждый
символ (или составной знак) вставляется перед курсором. Курсор может быть
переслан влево действием CAPS SHIFT и «5». а вправо CAPS SHIFT и «8».
Символ перед курсором можно удалить командой DELETE (CAPS SHIFT и
«О») Целая строка может быть удалена вводом EDIT (CAPS SHIFT и «1») и
последующим ENTER. Когда нажимается ENTER, выполняется набранная
строка, либо она вводится в программу, либо она используется как входные
данные цля INPUT оператора, либо в строке имеются синтаксические
ошибки В этом случае мигающим знаком f?] происходит указание на
ошибку
Когда строки программы ьчедены, листинг отображается в верхней
части экрана. Более подробно этот процесс описан в главе 2.
Последняя введенная строка называется текущей и отмечается симво-
лом []. и ее можно изменить, используя тавиши перемещения курсора вверх
и вниз (CAPS SHIFT и «б» . CAPS SHIFT и «1»). Если введен EDIT (CAPS
SHFT и «1»). то текущая строка переносится в нижнюю часть экрана и ста-
новится доступной для редактирования
Если выполняется команда или целая программа, то результаты отобра-
жаются в верхней половине экрана и сохраняются да ввода строки програм-
мы. ввода пустой строки или нажатия клавиши управления курсором вверх
или вниз В нижней части выдаются сообщения и коды, приведенные в
приложении В В сообщении указывается номер ошибочной строки (0 для ко-
манды) и позиция оператора в этой строке. Сообщение сохраняется на экра-
не до нажатия любой клавиши (отображается переходом в режим [К]).
В определенных обстоятельствах CAPS SHIFT и SPACE действуют как
BREAK, останавливая компьютер с сообщениями «D .. » или «L ..Л и при
этом до останова
• а) завершается выполняющийся оператор или
• б) завершаются действия, выполняемые компьютером с
магнитофоном или принтером.
Пример использования клавиатуры
Экран телевизора содержит 24 строки по 32 позиции в каждой и
делится на две части. Верхняя часть в 22 строки отображает листинг или вы-
вод из программы. Когда> вывод из верхней части достигает низа, необ-
ходима свертка на одну строку, при этом может захватываться строка,
которую Вам хочется сохранить, компьютер в этом случае останавливается с
запросом «Scroll ?» Если теперь нажать клавиши N, SPACE или STOP, то
программа остановится с выдачей сообщения «D BREAK-CONT repeats .
Нажатие других клавиш разрешает свёртку и продолжение выполнения
Нижняя часть используется для ввода команд, строк программы и вход-
ных INPUT-данных, а также для отображения сообщений. Нижняя часть экра-
на состоит из двух строк (верхняя из них чистая — для расширения), при
переполнении верхней строки осуществляется свёртка.
Каждая позиция имеет атрибуты, определяющие её как чистую (цвет
фона), либо как закрашенную (основной цвет), с повышенной или понижен-
ной яркостью, мерцающую или нет.
Доступны цвета: чёрный, синий, красный, фиолетовый, зелёный, голу-
бой, жёлтый, белый.
Края экрана (бордюр) могут быть установлены в определённый цвет
использованием оператора BORDER.
Каждая позиция подразделяется на 8 * 8 точек, а графика символов
обеспечивается индивидуальным определением каждой точки. Атрибуты
каждой позиции настраиваются при записи символа или при установке точки
(pixel). Способ настройки определяется параметрами вывода, имеющими две
установки (постоянную и временную) в шести операторах:
PAPER, INK, FLASH, BRIGHT, INVERSE и OVER.
Постоянные параметры верхней части экрана устанавливаются в опера-
торах PAPER, INK и т.д. Обычно они имеют чёрный цвет для закрашенной
точки (INK) и белый для фоновой (PAPER), нормальную яркость, не мерца-
ющие, не инверсные. Постоянные параметры для нижней части экрана
используют цвет рамки (BORDER color) как цвет фона (не закрашенный), с
чёрным или белым цветом, нормальную яркость, не мерцающие.
Временные параметры устанавливаются командами:
PAPER, INK, FLASH, BRIGHT, INVERSE и OVER,
вставляемыми в операторы:
PRINT, LPRINT, INPUT, PLOT, DRAW, CIRCLE,
а также в виде управляющих кодов в этих же операторах, когда они вы-
водятся на телевизор.
Временные параметры сохраняются до конца действия оператора
PRINT (или других).
Параметры PAPER и INK могут принимать значения от 0 до 9. Парамет-
ры от 0 до 7 определяют цвета выводимого символа:
• 0 — чёрный (black);
• 3 — фиолетовый (magenta):
• 4 — зелёный (green);
• 5 — голубой (cyan);
• 6 — жёлтый (yellow);
Параметр 8 определяет, что цвет должен остаться при выводе без изме-
нения. параметр 9 (контрастность) определяет, что цвет должен стать либо
белым, либо чёрным для выделения его из других цветов.
Параметры FLASH и BRIGHT могут принимать значения 0, 1 или 8.
Параметр 1 указывает, что включается повышенная яркость и мерцание.
Параметр 0 указывает, что повышенная яркость и мерцание отключаются. Па-
раметр 8 указывает, что всё остаётся без изменений.
Параметры OVER и INVERSE могут принимать значения 0 и 1.
OVER 0 — новый символ затирает старый.
OVER 1 — код старого символа и нового символа соединяются опе- INVERSE 0 — новый символ печатается в неинверсном (позитивном) INVERSE 1 — новый символ печатается в инверсном (негативном) виде. Когда на телевизор передаётся управляющий символ TAB, то два Если на вывод передаётся запятая как управляющий символ, то вы- Если передаётся управляющий символ ENTER, то позиция вывода пере- Вывод на принтер осуществляется через буфер одной строки длиной в • а) когда окончен вывод одной строки и вывод переходит к другой • б) при передаче в буфер символа ENTER; • в) при завершении программы, если ещё остались другие, не • г) если встретились управляющие символы TAB или запятая, Управляющие символы TAB и запятая производят вывод пробелов при Управляющий символ AT изменяет позицию вывода, используя число, Принтер также правильно реагирует на управляющие символы При вводе BREAK принтер останавливается с выдачей сообщения
рацией исключающего «или образуя новый символ
виде.
старших байта используются для спецификации TAB STOP N (первый байт
является старшим). Это обеспечивается прогоном по модулю N (указанном в
TAB) и затем выводом нужного количества пробелов для смещения текущей
позиции вывода в колонку N.
водится нужное количество пробелов для перевода текущей позиции вывода
в позицию 0 или 16.
водится на следующую строку.
32 символа. Очерёдная строка выдаётся из буфера на принтер в следующих
случаях:
строке;
выведенные данные;
требующие перевода строки.
работе с телевизором.
задающее позицию.
INVERSE, OVER (и операторы с тем же именем), но не воспринимает
PAPER, INK. FLASH и BRIGHT.
«В . «. При отсутствии принтера вывод просто не осуществляется.