Слово TYPE

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

TYPE (печать, напечатать) — стандартное слово Каллисто.

TYPE           ( a u −− )                           Напечатать на индикаторе u литер от адреса a.

Стек при обращении к TYPE должен содержать адрес, начиная с которого надо начать вывод, и число выводимых символов (последнее лежит наверху стека).

Передаёт u литер, начиная с адреса a, на выходное устройство.

Ввод слова TYPE

В режиме ЛАТ последовательно нажмите четыре клавиши  2    ,    6   ИП 

TYPE в стандарте ANS Forth

 6.1.2310   TYPE                                                            CORE
            ( c-addr u -- )
            Если u больше нуля, отображает символьную строку, определенную c-
            addr и u.

            Когда просматривается символ, чьи символом-определенные биты имеют 
            значение между hex 20 и 7E включительно, отображается 
            соответствующий стандартный символ, определенный в 3.1.2.1 
            Графические символы. Поскольку различные устройства вывода могут 
            реагировать по-разному на управляющие символы, программы, 
            использующие управляющие символы для выполнения специфических 
            функций, имеют зависимость от окружения.

        См.: 6.1.1320 EMIT.

История

Слово TYPE является одним из наиболее старых и устоявшихся слов Форта.

TYPE появился в Форте в 1965 году, когда Чак Мур подрабатывал наёмным программистом в городе Нью-Йорк. Тогда появились миникомпьютеры, а с ними и терминалы. Интерпретатор был идеален для ввода с телетайпа и вскоре стал включать код для работы с выводом.

Слово TYPE появилось, как цикл, вызывающий EMIT для отображения символов. В Каллисто TYPE работает быстрее, т.к обновляет экран после вывода всей строки, а EMIT — после каждого символа.

TYPE в предыдущем стандарте Forth-83 (англ.)

      TYPE         addr +n --                    M,79
           +n characters are displayed from memory beginning with the
           character at addr and continuing through consecutive
           addresses.  Nothing is displayed if +n is zero.  See:
           "9.5.4 TYPE"

      9.5.4     TYPE

      Because of the potential non-transportable action by terminal
      devices of control characters, the use of ASCII control
      characters is an environmental dependency.

TYPE в стандарте Forth-79 (англ.)

TYPE           addr n --                     222
    Transmit  n  characters beginning at address  to  the  current
    output device.  No action takes place for n less than or equal
    to zero.

TYPE в fig-FORTH Release 1 glossary, май 1979 (англ.)

TYPE          addr count ---                 L0
       Transmit count characters from addr to the selected output device.

Реализация

У Баранова-Ноздрунова приводится следующее описание слова TYPE (стр. 34):

 : TYPE   ( A,N ---> )    FOR ↑ C@ EMIT 1+ NEXT DROP ;

Слово TYPE в ФОРТ-ЕС было примитивом. Вот его описание и опубликованная часть определения:

TYPE        A,+N-> НАПЕЧАТАТЬ НА ТЕРМИНАЛЕ +N ЛИТЕР             6
            ОТ АДРЕСА А

                    Экран номер 6
( 09.09.86 KEY CR EMIT TYPE (EXPECT/ RBLK MBLK )
(  следующие определения дают только имена процедур)

CODE TYPE  ( A,N-> ВЫВЕСТИ HА TEPМИНАЛ N ЛИТЕР ПО АДРЕСУ A) END-CODE

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

             HEAD    204Q,'TYP',305Q,$TYPE,$COL           ; TYPE
             DW  DDUP,ZBRAN,TC1-$,ZERO,XDO
   TC0:      DW  DUBL,I,PLUS,CAT,LIT,177Q,$AND
             DW  ONE,EMI$,XLOOP,TC0-$
   TC1:      DW  DROP,SEMI

Ссылки


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


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