KEY

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Пример работы слова KEY

KEY (клавиша) — стандартное слово Каллисто. Ввод символа с клавиатуры.

KEY            ( −− c )                             Ввод символа с клавиатуры.

Выводит текстовый курсор и ожидает ввод символа с клавиатуры. После ввода убирает курсор и посылает код введённого символа в стек.

Один символ может потребовать нажатия нескольких клавиш, например переключение алфавитов. Если вам нужно нажатие точно одной клавиши ЭКВМ, используйте слово EKEY. Слово INKEY позволяет узнать, какая клавиша нажата, не останавливая программу.

Ввод слова 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 в предыдущем стандарте 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 является одним из наиболее старых и устоявшихся слов Форта. Оно появилось в Форте в 1965 году, когда Чак Мур подрабатывал наёмным программистом в городе Нью-Йорк. Тогда появились миникомпьютеры, а с ними и терминалы. Интерпретатор был идеален для ввода с телетайпа.

Тогда же появилось слово EXPECT — цикл, вызывающий KEY для чтения нажатий на клавиши. В 1994 году слово EXPECT было заменено на более продуманное слово ACCEPT, которое и вошло в Каллисто.

Реализация

Слово 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

Ссылки


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.