Клавиатура — различия между версиями

Материал из SpeccyWiki
Перейти к: навигация, поиск
(Раскладка клавиш в Sinclair BASIC)
 
(не показано 9 промежуточных версии 2 участников)
Строка 1: Строка 1:
'''Клавиатура''' - основное устройство ввода и управления компьютером.
+
'''Клавиатура''' основное устройство ввода и управления компьютером.
  
Оригинальный [[ZX Spectrum]] имел 40-кнопочную клавиатуру. Клавиши были резиновыми, не обеспечивавшими чёткой обратной тактильной связи. Для частичного устранения этого недостатка во встроенном интерпретаторе языка [[Sinclair BASIC|Бейсик]] реализовано звуковое подтверждение при нажатии клавиш.
+
Оригинальный [[ZX Spectrum]] имел 40-кнопочную клавиатуру. Клавиши были резиновыми (аналогичные используемым в калькуляторах), не обеспечивавшими чёткой обратной тактильной связи. Для частичного устранения этого недостатка во встроенном интерпретаторе языка [[Sinclair BASIC|Бейсик]] реализовано звуковое подтверждение при нажатии клавиш.
  
Поле стандартной клавиатуры содержит 26 алфавитных, 10 цифровых, пробел и три служебных клавиши - ввод (''Enter'') и две клавиши регистра (''шифты'', ''Symbol shift'' и ''Caps shift''). Все остальные необходимые действия, реализованные на полноценных клавиатурах в виде отдельных клавиш, выполняются комбинациями шифтов с другими клавишами.
+
Поле стандартной клавиатуры содержит 26 алфавитных, 10 цифровых, пробел и три служебных клавиши ввод (''Enter'') и две клавиши регистра, так называемые ''шифты'' (''Symbol Shift'' и ''Caps Shift'', сокращённо ''SS'' и ''CS''). Все остальные необходимые действия, реализованные на полноценных клавиатурах в виде отдельных клавиш, выполняются комбинациями шифтов с другими клавишами.
  
В интерпретаторе Бейсика используется токенизированный ввод, позволяющий вводить управляющие слова нажатием одной клавиши. Так как количество слов существенно больше, чем количество клавиш, для ввода части слов также используются различные комбинации шифтов с обычными клавишами. Ввиду отсутствия возможности посимвольного ввода управляющих слов это требует запоминания множества комбинаций клавиш - около пяти вариантов использования каждой клавиши. Для частичного устранения этого недостатка на клавиши нанесены обозначения по специальной системе.
+
В интерпретаторе Бейсика используется токенизированный ввод, позволяющий вводить управляющие слова нажатием одной клавиши. Так как количество слов существенно больше, чем количество клавиш, для ввода части слов также используются различные комбинации шифтов с обычными клавишами. Ввиду отсутствия возможности посимвольного ввода управляющих слов это требует запоминания множества комбинаций клавиш около пяти вариантов использования каждой клавиши. Для частичного устранения этого недостатка на клавиши нанесены обозначения по специальной системе.
  
В модели [[ZX Spectrum+]] главным улучшением стало использование расширенной 58-кнопочной клавиатуры. Дополнительные клавиши имитируют нажатие наиболее часто используемых сочетаний клавиш - например, управление курсором. При этом с программной точки зрения интерфейс клавиатуры не изменился, что, с одной стороны, не требует наличия программной поддержки расширенных клавиш в уже существующем ПО, но, с другой стороны, не позволяет отличить расширенные клавиши от клавиш, входящих в комбинацию.
+
В модели [[ZX Spectrum+]] главным улучшением стало использование расширенной 58-кнопочной клавиатуры. Дополнительные клавиши имитируют нажатие наиболее часто используемых сочетаний клавиш например, управление курсором. При этом с программной точки зрения интерфейс клавиатуры не изменился, что, с одной стороны, не требует наличия программной поддержки расширенных клавиш в уже существующем ПО, но, с другой стороны, не позволяет отличить расширенные клавиши от клавиш, входящих в комбинацию.
  
Все модели [[ZX Spectrum 128K]] используют такую-же клавиатуру, как и ZX Spectrum+, но у моделей [[ZX Spectrum +2]] и [[ZX Spectrum +3]] отсутствуют обозначения комбинаций клавиш, так как интерпретатор Бейсика для режима 128K не использует токенизированный ввод.
+
Все модели [[ZX Spectrum 128K]] используют такую же клавиатуру, как и ZX Spectrum+, но у моделей [[ZX Spectrum +2]] и [[ZX Spectrum +3]] отсутствуют обозначения комбинаций клавиш, так как интерпретатор Бейсика для режима 128K не использует токенизированный ввод.
  
Отечественные клоны ZX Spectrum использовали клавиатуры различных типов и раскладок, включая 40-кнопочные и расширенные; механические, плёночные и герконовые. Также использовались стандартные клавиатуры типа МС7007 с нанесённой дополнительной маркировкой. Некоторые клоны имели дополнительные клавиши, опрашиваемые через специальный порт и поддерживаемые очень ограниченным количеством программ. Из-за недоступности нестандартных клавиатур при широком распространении клавиатур стандарта AT (в недавнем прошлом) и PS/2 современные клоны используют специальные контроллеры, позволяющие подключать клавиатуры этих типов без их переделки.
+
Отечественные клоны ZX Spectrum использовали клавиатуры различных типов и раскладок, включая 40-кнопочные и расширенные; механические, плёночные и герконовые. Также использовались стандартные клавиатуры типа МС7007 с нанесённой дополнительной маркировкой. Некоторые клоны имели дополнительные клавиши, опрашиваемые через биты 5 и 7 клавиатурного порта ([[Спарк]]/[[Аллофон]], [[Орель БК-08]]) и поддерживаемые очень ограниченным количеством программ.
 +
 
 +
Из-за недоступности нестандартных клавиатур при широком распространении клавиатур стандарта AT (в недавнем прошлом) и PS/2, современные клоны используют специальные контроллеры, позволяющие использовать современные клавиатуры без их переделки. Такие контроллеры могут являться как отдельным устройством, так и присутствовать в компьютере штатно. Простые варианты контроллеров могут замедлять работу компьютера, генерируя сигнал [[WAIT]], так как им требуется время для преобразования данных, получаемых от клавиатуры в требуемый набор сигналов.
  
 
== Аппаратный интерфейс ==
 
== Аппаратный интерфейс ==
  
Аппаратно кнопки клавиатуры представляют собой матрицу восемь на пять линий - восемь полурядов по пять кнопок. В зависимости от адреса, использованного при обращении к [[порт 254|порту клавиатуры]], в младших пяти битах возвращается состояние клавиш одного из восьми полурядов. Такая схема создаёт "эффект матрицы" (''matrix effect'').<!-- забыл, в чём он заключается -->
+
Аппаратно кнопки клавиатуры представляют собой матрицу восемь на пять линий восемь полурядов по пять кнопок. В зависимости от адреса, использованного при обращении к [[порт 254|порту клавиатуры]], в младших пяти битах возвращается состояние клавиш одного из восьми полурядов. Такая схема создаёт "эффект матрицы" (''matrix effect'') — при нажатии двух клавиш (одного полуряда) одновременно с третьей клавишей (в одном столбце с первой) возникает паразитное нажатие в полуряду третьей клавиши, соответствующее столбцу второй. Этот эффект можно ликвидировать размещением диода на каждой клавише.
  
 
== Раскладка клавиш в Sinclair BASIC ==
 
== Раскладка клавиш в Sinclair BASIC ==
Строка 21: Строка 23:
 
[[Изображение:ZX_Spectrum_48K_Keyboard.jpg|thumb|right|40-кнопочная клавиатура]]
 
[[Изображение:ZX_Spectrum_48K_Keyboard.jpg|thumb|right|40-кнопочная клавиатура]]
  
Нажатие одной из основных клавиш с удержанием одного из двух "шифтов" позволяет вводить дополнительные символы, при этом Caps Shift изменяет регистр вводимых букв. Набираемый символ также зависит от режима курсора - в режиме ''K'' вводятся управляющие слова, в режиме ''L'' - обычные символы, в режиме ''E'' (''Extend Mode'', вызывается одновременным нажатием шифтов) - дополнительные управляющие слова - ''K'', если интерпретатор ожидает управляющее слово и ''L'', если ожидается текст. Режим ввода может изменяться автоматически, в зависимости от ситуации. Правила ввода:
+
В интерпретаторе Бейсика реализовано несколько режимов ввода. Текущий режим отображается в виде буквы-курсора. Режим ввода может изменяться автоматически, в зависимости от ситуации, а также может изменяться пользователем. Режимы:
  
*При нажатии алфавитной клавиши в режиме курсора ''K'' вводятся слова, указанные на клавише белым шрифтом левее и ниже буквы
+
*''L'' (''Letters''?) — ввод строчных букв и цифр;
*Нажатие цифровой клавиши в режимах ''K'' и ''L'' вводит цифру
+
*''C'' (''Caps Lock''?) — ввод заглавных букв и цифр;
*Нажатие алфавитной клавиши в режиме ''L'' вводит строчную букву, нажатие совместно с Caps Shift - заглавную букву
+
*''K'' (''Keyword''?) — активизируется, когда интерпретатор ожидает ввода управляющего слова, алфавитные клавиши вводят слова;
*Нажатие цифровой клавиши в режимах ''K'' и ''L'' совместно с Caps Shift выполняет действие, указанное белым цветом над цифровыми клавишами (функции редактирования, управление курсором)
+
*''E'' (''Extend Mode'') — вызывается одновременным нажатием Symbol Shift и Caps Shift, нажатие клавиш вводит дополнительные управляющие слова;
*Нажатие любой клавиши совместно с Symbol Shift вводит символ или слово, указанные на клавише красным шрифтом слева от основной буквы
+
*''G'' (''Graphics'') — ввод псевдографических символов и символов, изображение которых определяется пользователем.
*Нажатие любой клавиши в режиме ''E'' вводит слова, указанные над клавишами (зелёным шрифтом)
+
 
*Нажатие любой клавиши в режиме ''E'' совместно с Symbol Shift вводит слова, указанные под клавишами (красным шрифтом)
+
Правила ввода:
 +
 
 +
*При нажатии алфавитной клавиши в режиме курсора ''K'' вводятся слова, указанные на клавише белым шрифтом левее и ниже буквы;
 +
*Нажатие цифровой клавиши в режимах ''K'' и ''L'' вводит цифру;
 +
*Нажатие алфавитной клавиши в режиме ''L'' вводит строчную букву, нажатие совместно с Caps Shift - заглавную букву;
 +
*Нажатие цифровой клавиши в режимах ''K'' и ''L'' совместно с Caps Shift выполняет действие, указанное белым цветом над цифровыми клавишами (функции редактирования, управление курсором);
 +
*Нажатие любой клавиши совместно с Symbol Shift вводит символ или слово, указанные на клавише красным шрифтом слева от основной буквы;
 +
*Нажатие любой клавиши в режиме ''E'' вводит слова, указанные над клавишами (зелёным шрифтом);
 +
*Нажатие любой клавиши в режиме ''E'' совместно с Symbol Shift вводит слова, указанные под клавишами (красным шрифтом).
  
  
 
{| class="standard"
 
{| class="standard"
 
!
 
!
 +
!K
 
!SS
 
!SS
 
!CS
 
!CS
Строка 40: Строка 51:
 
!Ext+SS
 
!Ext+SS
 
|-
 
|-
|0
+
!1
 +
|1
 
|!
 
|!
 
|Edit
 
|Edit
Строка 47: Строка 59:
 
|DEF FN
 
|DEF FN
 
|-
 
|-
|a
+
!2
 +
|2
 +
|@
 +
|Caps Lock
 +
|Код красного фона
 +
|Код красных чернил
 +
|FN
 +
|-
 +
!3
 +
|3
 +
|#
 +
|True video
 +
|Код фиолетового фона
 +
|Код фиолетовых чернил
 +
|LINE
 +
|-
 +
!4
 +
|4
 +
|$
 +
|Inverse video
 +
|Код зелёного фона
 +
|Код зелёных чернил
 +
|OPEN#
 +
|-
 +
!5
 +
|5
 +
|%
 +
|Курсор влево
 +
|Код голубого фона
 +
|Код голубых чернил
 +
|CLOSE#
 +
|-
 +
!6
 +
|6
 +
|&
 +
|Курсор вниз
 +
|Код жёлтого фона
 +
|Код жёлтых чернил
 +
|MOVE
 +
|-
 +
!7
 +
|7
 +
|'
 +
|Курсор вверх
 +
|Код белого фона
 +
|Код белых чернил
 +
|ERASE
 +
|-
 +
!8
 +
|8
 +
|(
 +
|Курсор вправо
 +
|
 +
|
 +
|POINT
 +
|-
 +
!9
 +
|9
 +
|)
 +
|Graphics mode
 +
|
 +
|
 +
|CAT
 +
|-
 +
!0
 +
|0
 +
|_
 +
|Delete
 +
|Код чёрного фона
 +
|Код чёрных чернил
 +
|FORMAT
 +
|-
 +
!a
 +
|NEW
 
|STOP
 
|STOP
 
|A
 
|A
Строка 53: Строка 138:
 
|~
 
|~
 
|~
 
|~
 +
|-
 +
!b
 +
|BORDER
 +
|*
 +
|B
 +
|BIN
 +
|BRIGHT
 +
|BRIGHT
 +
|-
 +
!c
 +
|CONTINUE
 +
|?
 +
|C
 +
|LPRINT
 +
|PAPER
 +
|PAPER
 +
|-
 +
!d
 +
|DIM
 +
|STEP
 +
|D
 +
|DATA
 +
|\
 +
|\
 +
|-
 +
!e
 +
|REM
 +
|>=
 +
|E
 +
|TAN
 +
|ATN
 +
|ATN
 +
|-
 +
!f
 +
|FOR
 +
|TO
 +
|F
 +
|SGN
 +
| {
 +
| {
 +
|-
 +
!g
 +
|GO TO
 +
|THEN
 +
|G
 +
|ABS
 +
| }
 +
| }
 +
|-
 +
!h
 +
|GOSUB
 +
|^
 +
|H
 +
|SQR
 +
|CIRCLE
 +
|CIRCLE
 +
|-
 +
!i
 +
|INPUT
 +
|AT
 +
|I
 +
|CODE
 +
|IN
 +
|IN
 +
|-
 +
!j
 +
|LOAD
 +
| -
 +
|J
 +
|VAL
 +
|VAL$
 +
|VAL$
 +
|-
 +
!k
 +
|LIST
 +
| +
 +
|K
 +
|LEN
 +
|SCREEN$
 +
|SCREEN$
 +
|-
 +
!l
 +
|LET
 +
|=
 +
|L
 +
|USR
 +
|ATTR
 +
|ATTR
 +
|-
 +
!m
 +
|PAUSE
 +
|.
 +
|M
 +
|PI
 +
|INVERSE
 +
|INVERSE
 +
|-
 +
!n
 +
|NEXT
 +
|,
 +
|N
 +
|INKEY$
 +
|OVER
 +
|OVER
 +
|-
 +
!o
 +
|POKE
 +
|;
 +
|O
 +
|PEEK
 +
|OUT
 +
|OUT
 +
|-
 +
!p
 +
|PRINT
 +
|"
 +
|P
 +
|TAB
 +
 +
 +
|-
 +
!q
 +
|PLOT
 +
|<=
 +
|Q
 +
|SIN
 +
|ASN
 +
|ASN
 +
|-
 +
!r
 +
|RUN
 +
|<
 +
|R
 +
|INT
 +
|VERIFY
 +
|VERIFY
 +
|-
 +
!s
 +
|SAVE
 +
|NOT
 +
|S
 +
|RESTORE
 +
|<nowiki>|</nowiki>
 +
|<nowiki>|</nowiki>
 +
|-
 +
!t
 +
|RANDOMIZE
 +
|>
 +
|T
 +
|RND
 +
|MERGE
 +
|MERGE
 +
|-
 +
!u
 +
|IF
 +
|OR
 +
|U
 +
|CHR$
 +
|]
 +
|]
 +
|-
 +
!v
 +
|CLS
 +
|/
 +
|V
 +
|LLIST
 +
|FLASH
 +
|FLASH
 +
|-
 +
!w
 +
|DRAW
 +
|<>
 +
|W
 +
|COS
 +
|ACS
 +
|ACS
 +
|-
 +
!x
 +
|CLEAR
 +
 +
|X
 +
|EXP
 +
|INK
 +
|INK
 +
|-
 +
!y
 +
|RETURN
 +
|AND
 +
|Y
 +
|STR$
 +
|[
 +
|[
 +
|-
 +
!z
 +
|COPY
 +
|:
 +
|Z
 +
|LN
 +
|BEEP
 +
|BEEP
 +
|-
 +
!Пробел
 +
|Пробел
 +
|Пробел
 +
|Break
 +
|Пробел
 +
|Пробел
 +
|Пробел
 +
|-
 +
!Enter
 +
|Enter
 +
|Enter
 +
|Enter
 +
|Enter
 +
|Enter
 +
|Enter
 
|}
 
|}
  
[[Категория:Устройства ввода]]
+
 
 +
[[Категория:Устройства ввода|*]]

Текущая версия на 06:43, 24 ноября 2009

Клавиатура — основное устройство ввода и управления компьютером.

Оригинальный 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

40-кнопочная клавиатура

В интерпретаторе Бейсика реализовано несколько режимов ввода. Текущий режим отображается в виде буквы-курсора. Режим ввода может изменяться автоматически, в зависимости от ситуации, а также может изменяться пользователем. Режимы:

  • 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 вводит слова, указанные под клавишами (красным шрифтом).


K SS CS Ext Ext+CS Ext+SS
1 1 ! Edit Код синего фона Код синих чернил DEF FN
2 2 @ Caps Lock Код красного фона Код красных чернил FN
3 3 # True video Код фиолетового фона Код фиолетовых чернил LINE
4 4 $ Inverse video Код зелёного фона Код зелёных чернил OPEN#
5 5 % Курсор влево Код голубого фона Код голубых чернил CLOSE#
6 6 & Курсор вниз Код жёлтого фона Код жёлтых чернил MOVE
7 7 ' Курсор вверх Код белого фона Код белых чернил ERASE
8 8 ( Курсор вправо POINT
9 9 ) Graphics mode CAT
0 0 _ Delete Код чёрного фона Код чёрных чернил FORMAT
a NEW STOP A READ ~ ~
b BORDER * B BIN BRIGHT BRIGHT
c CONTINUE ? C LPRINT PAPER PAPER
d DIM STEP D DATA \ \
e REM >= E TAN ATN ATN
f FOR TO F SGN { {
g GO TO THEN G ABS } }
h GOSUB ^ H SQR CIRCLE CIRCLE
i INPUT AT I CODE IN IN
j LOAD - J VAL VAL$ VAL$
k LIST + K LEN SCREEN$ SCREEN$
l LET = L USR ATTR ATTR
m PAUSE . M PI INVERSE INVERSE
n NEXT , N INKEY$ OVER OVER
o POKE ; O PEEK OUT OUT
p PRINT " P TAB © ©
q PLOT <= Q SIN ASN ASN
r RUN < R INT VERIFY VERIFY
s SAVE NOT S RESTORE | |
t RANDOMIZE > T RND MERGE MERGE
u IF OR U CHR$ ] ]
v CLS / V LLIST FLASH FLASH
w DRAW <> W COS ACS ACS
x CLEAR £ X EXP INK INK
y RETURN AND Y STR$ [ [
z COPY : Z LN BEEP BEEP
Пробел Пробел Пробел Break Пробел Пробел Пробел
Enter Enter Enter Enter Enter Enter Enter