QUERY

Материал из ПМК вики
Перейти к: навигация, поиск

QUERY (запрос) — стандартное слово Каллисто.

QUERY          ( −− )                               Ввести строку с пульта в TIB, ограничив её двумя нулями.

Осуществляет ввод строки символов с клавиатуры во входной буфер TIB.

Ввод слова QUERY[править]

В режиме ЛАТ последовательно нажмите клавиши  +   3   ИП   ×    ,  

QUERY в стандарте ANS Forth[править]

 6.2.2040   QUERY                                                       CORE EXT
            ( -- )
            Делает пользовательское устройство ввода данных входным источником. 
            Получает ввод в буфер ввода терминала, заменяя любое предыдущее 
            содержимое. Делает результат, чей адрес возвращается TIB, входным 
            буфером. Установить >IN в ноль.

        Примечание: Это слово устаревшее и включено как уступка существующим 
            реализациям.

 A.6.2.2040   QUERY
 Функция QUERY может быть выполнена с ACCEPT и EVALUATE.

История[править]

В стандарте Форта 1994 года слово QUERY было определено, как устаревшее. Его нет в черновике стандарта 200x года.

Форт−79 устанавливает максимальный размер входной строки 80 символов. В Каллисто максимальный размер строки 94 символа, не считая двух завершающих нулей.

QUERY в предыдущем стандарте Forth-83 (англ.)[править]

     QUERY        --                            M,83
          Characters are received and transferred into the memory area
          addressed by TIB .  The transfer terminates when either a
          "return" is received or the number of characters transferred
          reaches the size of the area addressed by TIB .  The values
          of >IN and BLK are set to zero and the value of #TIB is set
          to the value of SPAN .  WORD may be used to accept text from
          this buffer.  See:  EXPECT  "input stream"

QUERY в стандарте Forth-79 (англ.)[править]

QUERY                                        235
    Accept input of up to 80 characters (or until a 'return') from
    the operator's terminal, into the terminal input buffer.  WORD
    may  be  used  to accept text from this buffer  as  the  input
    stream, by setting >IN and BLK to zero.

QUERY в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

QUERY
       Input 80 characters of text (or until a "return") from the operators
       terminal. Text is positioned at the address contained in TIB with IN
       set to zero.

Реализация[править]

3134 ;#QUERY
3135 ; QUERY            ( −− )                               Ввести строку с пульта в TIB, ограничив её двумя нулями.
3136 ; Осуществляет ввод строки литер с клавиатуры.
3137 ; Ввод прекращается, если нажата клавиша Ввод или заполнен входной буфер.
3138 ; Максимальный размер строки 94 литеры.
3139 LQUERY:         .DB     5
3140                 .TEXT   "QUERY"
3141                 .DW     LCOMQ
3142 QUERY:          .DW CALL, ZERO,TIB,DUP,LITB
3143                 .DB 94
3144                 .DW ACCE,PLUS,STORE, IN,ZSTORE, BRAN,RSPACE

Советская реализация[править]

Юрий Семёнов приводит следующее определение слова QUERY через слово EXPECT (стр. 31):

: QUERY   TIB @ 120 EXPECT 0 >IN ! ↵ ;

Определение и описание слова QUERY в ядре ФОРТ-ЕС:

QUERY    *  -> ВВЕСТИ С ТЕРМИНАЛА ЛИТЕРЫ В БУФЕР "TIB" ;        40
             ЧИСЛО ВВЕДЕННЫХ ЛИТЕР ЗАСЛАТЬ В "#TIB"

                     Экран номер 40
( 31.03.84      EXPECT  OUERY INTERPRET  ФОРТ-СИСТЕМА  X )

: QUERY ( ->) TIB 80 EXPECT >IN 0! BLK 0! SPAN @ #TIB ! ;

Определение слова QUERY в FORTH ИТЭФ:

             HEAD    205Q,'QUER',331Q,QUERY,$COL          ; QUERY
             DW  TIB,AT,CFA,LIT,120Q,EXPE,ZERO,IN,STORE,CR,SEMI

Ссылки[править]


  Nopictures-icon.png У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


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