KEY: различия между версиями
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 4: | Строка 4: | ||
Выводит текстовый курсор и ожидает ввод [[Знакогенератор|символа]] с алфавитно-цифровой клавиатуры. После ввода убирает курсор и кладёт на [[Стек данных|стек]] [[Знакогенератор|код введённого символа]]. | Выводит текстовый курсор и ожидает ввод [[Знакогенератор|символа]] с алфавитно-цифровой клавиатуры. После ввода убирает курсор и кладёт на [[Стек данных|стек]] [[Знакогенератор|код введённого символа]]. | ||
Один символ может потребовать нажатия нескольких клавиш, например переключения алфавитов. Если вам нужно нажатие точно одной клавиши ЭКВМ, используйте слово [[EKEY]]. Слово [[INKEY]] позволяет узнать, какая клавиша нажата, не останавливая приложение. | Один символ может потребовать нажатия нескольких клавиш, например переключения алфавитов. Если вам нужно нажатие точно одной клавиши ЭКВМ, используйте слово [[EKEY]]. Слово [[INKEY]] позволяет узнать, какая клавиша нажата, не останавливая приложение. Для отображения введённого символа используйте слово [[EMIT]]. | ||
== Ввод слова KEY == | == Ввод слова KEY == |
Версия от 00:16, 6 сентября 2017
KEY (клавиша) — стандартное слово Каллисто. Ввод символа с клавиатуры.
KEY ( −− c ) Ввод символа с клавиатуры.
Выводит текстовый курсор и ожидает ввод символа с алфавитно-цифровой клавиатуры. После ввода убирает курсор и кладёт на стек код введённого символа.
Один символ может потребовать нажатия нескольких клавиш, например переключения алфавитов. Если вам нужно нажатие точно одной клавиши ЭКВМ, используйте слово EKEY. Слово INKEY позволяет узнать, какая клавиша нажата, не останавливая приложение. Для отображения введённого символа используйте слово EMIT.
Ввод слова KEY
В режиме ЛАТ последовательно нажмите три клавиши 9 ИП ,
KEY в стандарте ANS Forth
6.1.1750 KEY CORE ( -- char ) Получает один символ char, член определенного реализацией набора символов. События клавиатуры, которые не соответствуют таким символам игнорируются, пока не получен допустимый символ, и впоследствии будут недоступны. Могут быть получены все стандартные символы. Символы, полученные KEY, не отображаются. Любой стандартный символ, возвращенный KEY имеет числовое значение определенное в 3.1.2.1 Графические символы. Программы, которые требуют способности к получению управляющих символов, имеют зависимость от окружения. См.: 10.6.2.1307 EKEY, 10.6.1.1755 KEY?.
История
Слово KEY является одним из наиболее старых и устоявшихся слов Форта. Оно появилось в Форте в 1965 году, когда Чак Мур подрабатывал наёмным программистом в городе Нью-Йорк. Тогда появились миникомпьютеры, а с ними и терминалы. Интерпретатор был идеален для ввода с телетайпа.
Тогда же появилось слово EXPECT — цикл, вызывающий KEY для чтения нажатий на клавиши. В 1994 году слово EXPECT было заменено на более продуманное слово ACCEPT, которое и вошло в Каллисто.
KEY в предыдущем стандарте Forth-83 (англ.)
KEY -- 16b M,83 The least-significant 7 bits of 16b is the next ASCII character received. All valid ASCII characters can be received. Control characters are not processed by the system for any editing purpose. Characters received by KEY will not be displayed. See: "9.5.1 KEY" 9.5.1 KEY A Standard System must receive all valid ASCII characters. Each KEY receives one ASCII character, with more-significant bits environmentally dependent and might be zero. KEY must receive as many bits as are obtainable. A Standard Program without environmental dependencies may only use the least significant 7- bit ASCII character received by KEY . For example: KEY 127 AND
KEY в стандарте Forth-79 (англ.)
KEY -- char 100 Leave the ASCII value of the next available character from the current input device.
KEY в fig-FORTH Release 1 glossary, май 1979 (англ.)
KEY --- c L0 Leave the ascii value of the next terminal key struck.
Реализация
Слово KEY в ФОРТ-ЕС было примитивом. Вот его описание и опубликованная часть определения:
KEY ->С ВВЕСТИ ЛИТЕРУ С ТЕРМИНАЛА 6 Экран номер 6 ( 09.09.86 KEY CR EMIT TYPE (EXPECT/ RBLK MBLK ) ( следующие определения дают только имена процедур) CODE KEY ( ->С ВВЕСТИ ЛИТЕРУ С ТЕРМИНАЛА ) END-CODE
В FORTH ИТЭФ слово KEY также было примитивом, вот его определение:
; ** Терминал ** HEAD 203Q,'KE',331Q,KEY ; KEY SUB AH, AH INT 22 SUB AH, AH PUSH AX NEXT
Ссылки
- Исходный текст слова KEY в Каллисто Классик 1.0
- См. слова EKEY, INKEY
- Слово KEY в стандарте ANS Forth (англ.)
- Слово KEY и комментарий к нему в черновике Forth 200x (англ.)
- ВВОД-ВЫВОД в книге Л.Броуди «Начальный курс программирования на языке Форт»
- I/O and You в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |