Слово TYPE
TYPE (печать, напечатать) — стандартное слово Каллисто. Передаёт u литер, начиная с адреса a, на индикатор.
TYPE ( a u −− ) Напечатать на индикаторе u литер от адреса a.
Стек при обращении к TYPE должен содержать адрес, начиная с которого надо начать вывод, и число выводимых символов (последнее лежит наверху стека).
Ввод слова 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.
Реализация[править]
В Каллисто 1.0 слово TYPE может выводить символы как из области данных, так и из памяти программ:
604 ;#TYPE 605 ; TYPE ( a u −− ) Напечатать на индикаторе u литер от адреса a. 606 ; Передать u литер, начиная с адреса a на индикатор. 607 ; Подразумеваем, что строка не пересекает границу областей памяти. 608 LTYPE: .DB 4 609 .TEXT "TYPE" 610 .DW LLIT 611 TYPE: .DW JTYPE ; Примитив 612 JTYPE: RM3 M8 1 + MB 1 + M3 613 KRM8 M0 +/− KX<09 ; R0 := длина 614 KRMB MB 1 EE 4 − FX<0 TYPER 615 RMB 616 TYPEP: KPRGM PGSB CHPUT ; вывести очередную литеру из памяти программ 617 RMB 1 + MB FL0 TYPEP 618 KGRPH KGOTO9 ; NEXT 619 TYPER: 1 − M5 620 TYPERL: KRM5 PGSB CHPUT ; вывести очередную литеру из регистровой памяти 621 FL0 TYPERL 622 KGRPH KGOTO9 ; NEXT
Реализация из SP-Forth 4.20:
: TYPE1 ( c-addr u -- ) \ 94 \ Если u>0 - вывести строку символов, заданную c-addr и u. \ Программы, использующие управляющие символы, зависят от окружения. ANSI><OEM 2DUP TO-LOG H-STDOUT DUP 0 > IF WRITE-FILE THROW ELSE 2DROP DROP THEN ; ' TYPE1 ' TYPE TC-VECT!
Советская реализация[править]
У Баранова-Ноздрунова приводится следующее описание слова 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
Ссылки[править]
- Исходный текст слова TYPE в Каллисто Классик 1.0
- Слово TYPE в стандарте ANS Forth (англ.)
- Слово TYPE в черновике Forth 200x (англ.)
- См. также стандартное слово TYPE1
- ВВОД-ВЫВОД в книге Л.Броуди «Начальный курс программирования на языке Форт»
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
- I/O and You в книге Leo Brodie Starting Forth (англ.)
![]() |
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
![]() |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |