Редактирование: INKEY

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''INKEY''' (опрос клавиши) родное слово [[Каллисто]]. Опрос состояния [[Клавиатура|клавиатуры]].
'''INKEY''' — стандартное слово [[Каллисто]]. Опрос состояния клавиатуры.
INKEY          ( −− b )                            Получить код нажатой клавиши или −1, если клавиши не нажаты.
 
Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или [[TRUE|−1]], если нет нажатой клавиши.
Посылает в [[Стек данных|стек]] [[Код клавиши|код нажатой клавиши]] или −1, если нет нажатой клавиши.


== Ввод слова INKEY ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша 9|{{Серая клавиша|9}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ,|{{Серая клавиша|1=<span style="position:relative;bottom:3px"> , </span>}}]]


== EKEY? и KEY? в стандарте ANS Forth ==
== EKEY? и KEY? в стандарте ANS Forth ==
Строка 42: Строка 40:
  события до получения допустимого символа.
  события до получения допустимого символа.


== История ==
Слово INKEY получило своё название от оператора INKEY&#36;, выполнявшего в MSX-Бейсике «Ямах» схожую функцию опроса клавиатуры без остановки программы.


В MMSFORTH было слово INKEY&#36; — которое возвращало адрес расположенной в [[PAD]] односимвольной счётной строки, пустой или с кодом нажатой клавиши.
== Ссылки ==
* См. слова [[EKEY]], [[KEY]]
* [http://forth.sourceforge.net/standard/dpans/dpans10.htm#10.6.2.1307 Слово EKEY? в стандарте ANS Forth] ''(англ.)''
* [http://forth.sourceforge.net/standard/dpans/dpans10.htm#10.6.1.1755 Слово KEY? в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa10.htm#A.10.6.1.1755 комментарий к нему] ''(англ.)''
* [http://www.forth200x.org/documents/html/facility.html#facility:EKEYq Слово EKEY? в черновике Forth 200x] ''(англ.)''
* [http://www.forth200x.org/documents/html/facility.html#facility:KEYq Слово KEY? в черновике Forth 200x] ''(англ.)'' и [http://www.forth200x.org/documents/html/rationale.html#rat:facility:KEYq комментарий к нему] ''(англ.)''


== Реализация ==
<pre>
886 STT:            1 +/− PKM03  KGOTO9            ; [SP] := −1; NEXT
1199 ;#INKEY
1200 ; INKEY            ( −− b )                            Получить код нажатой клавиши или −1, если клавиши не нажаты.
1201 LINKEY:        .DB    5
1202                .TEXT  "INKEY"
1203                .DW    LEKEY
1204 INKEY:          .DW    JINKEY
1205 JINKEY:        PPRM 9028                      ; Чтение состояния клавиатуры МК−161
1206                KM3
1207                KNOT KX=09
1208                PGOTO STT                      ; 1 +/− PKM03  KGOTO9
</pre>


== Ссылки ==
== История ==
* {{Исходник|INKEY|INKEY}}
Слово INKEY получило своё название от оператора INKEY$, выполнявшего в Бейсике «Ямах» схожую функцию опроса клавиатуры без остановки программы.
* См. слова [[EKEY]], [[KEY]]
* Слово [http://forth.sourceforge.net/standard/dpans/dpans10.htm#10.6.2.1307 EKEY?] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans10.htm#10.6.1.1755 KEY?] и [http://forth.sourceforge.net/standard/dpans/dpansa10.htm#A.10.6.1.1755 комментарий к нему] в стандарте ANS Forth ''(англ.)''
* Слово [http://www.forth200x.org/documents/html3/facility/EKEYq.html EKEY?] в черновике Forth 200x ''(англ.)''
* Слово [http://www.forth200x.org/documents/html3/facility/KEYq.html KEY?] и [http://www.forth200x.org/documents/html3/rationale.html#rat:facility:KEYq комментарий к нему] в черновике Forth 200x ''(англ.)''




Строка 75: Строка 56:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Терминальный ввод/вывод Каллисто]]
[[Категория:Терминальный ввод/вывод Каллисто]]
[[Категория:Родные слова]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:Системные слова]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/INKEY