Редактирование: KEY
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
[[Файл:CallistoKey.png|thumb|right|264px|Пример работы слова KEY]] | [[Файл:CallistoKey.png|thumb|right|264px|Пример работы слова KEY]] | ||
Выводит текстовый курсор и ожидает ввод [[Знакогенератор| | '''KEY''' (клавиша) — стандартное слово [[Каллисто]]. Ввод символа с клавиатуры. | ||
KEY ( −− c ) Ввод символа с клавиатуры. | |||
Выводит текстовый курсор и ожидает ввод [[Знакогенератор|символа]] с клавиатуры. После ввода убирает курсор и посылает [[Знакогенератор|код введённого символа]] в [[Стек данных|стек]]. | |||
Один символ может потребовать нажатия нескольких клавиш, например переключение алфавитов. Если вам нужно нажатие точно одной клавиши ЭКВМ, используйте слово [[EKEY]]. Слово [[INKEY]] позволяет узнать, какая клавиша нажата, не останавливая программу. | |||
== Ввод слова KEY == | == Ввод слова KEY == | ||
Строка 10: | Строка 10: | ||
== KEY в стандарте ANS Forth == | == KEY в стандарте ANS Forth == | ||
6.1.1750 KEY CORE | 6.1.1750 KEY CORE | ||
( -- char ) | ( -- char ) | ||
Строка 27: | Строка 26: | ||
См.: 10.6.2.1307 EKEY, 10.6.1.1755 KEY?. | См.: 10.6.2.1307 EKEY, 10.6.1.1755 KEY?. | ||
== KEY в предыдущем стандарте Forth-83 (англ.) == | |||
KEY -- 16b M,83 | KEY -- 16b M,83 | ||
The least-significant 7 bits of 16b is the next ASCII | The least-significant 7 bits of 16b is the next ASCII | ||
Строка 51: | Строка 43: | ||
environmental dependencies may only use the least significant 7- | environmental dependencies may only use the least significant 7- | ||
bit ASCII character received by KEY . For example: KEY 127 AND | bit ASCII character received by KEY . For example: KEY 127 AND | ||
== KEY в стандарте Forth-79 (англ.) == | |||
KEY -- char 100 | KEY -- char 100 | ||
Leave the ASCII value of the next available character from the | Leave the ASCII value of the next available character from the | ||
current input device. | current input device. | ||
== KEY в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
KEY --- c L0 | KEY --- c L0 | ||
Leave the ascii value of the next terminal key struck. | Leave the ascii value of the next terminal key struck. | ||
== История == | |||
Слово KEY является одним из наиболее старых и устоявшихся слов Форта. Оно появилось в Форте в 1965 году, когда Чак Мур подрабатывал наёмным программистом в городе Нью-Йорк. Тогда появились миникомпьютеры, а с ними и терминалы. Интерпретатор был идеален для ввода с телетайпа. | |||
Тогда же появилось слово EXPECT — цикл, вызывающий KEY для чтения нажатий на клавиши. В 1994 году слово EXPECT было заменено на более продуманное слово [[ACCEPT]], которое и вошло в [[Каллисто]]. | |||
== Реализация == | == Реализация == | ||
Слово KEY в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и опубликованная часть определения: | Слово KEY в ФОРТ-ЕС было [[примитив]]ом. Вот его описание и опубликованная часть определения: | ||
<PRE> | <PRE> | ||
Строка 115: | Строка 95: | ||
[[Категория:Примитивы]] | [[Категория:Примитивы]] | ||
[[Категория:Терминальный ввод/вывод Каллисто]] | [[Категория:Терминальный ввод/вывод Каллисто]] | ||