HOLD
HOLD (сохранить, читается «холд») — стандартное слово Каллисто.
HOLD ( c −− ) Перенести литеру c на вершину буфера PAD.
Слово HOLD вводит в текущую ячейку выходного буфера PAD символ, код которого в стеке
Слово HOLD предназначено для использования между словами <# и U#>.
Ввод слова HOLD[править]
В режиме ЛАТ последовательно нажмите четыре клавиши ПП 5 − K
HOLD в стандарте ANS Forth[править]
6.1.1670 HOLD CORE ( char -- ) Добавляет char к началу выходной строки отображаемого числа. Неопределенная ситуация существует если HOLD выполняется вне <# #> ограничивающих преобразование числа.
История[править]
HOLD в предыдущем стандарте Forth-83 (англ.)[править]
HOLD char -- 79 char is inserted into a pictured numeric output string. Typically used between <# and #>.
HOLD в стандарте Forth-79 (англ.)[править]
HOLD char -- 175 Insert char into a pictured numeric output string. May only be used between <# and #> .
HOLD в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
HOLD c --- L0 Used between <# and #> to insert an ascii character into a pictured numeric output string. e.g. 2E HOLD will place a decimal point.
Реализация[править]
109 rrHLD .EQU 1118 ; 11118 HLD − Указатель позиции в выходном буфере, обычно PAD 110 pHLD .EQU 118 111 rlHLD .EQU 1119 … 2038 ;#HOLD 2039 ; HOLD ( c −− ) Перенести литеру c на вершину буфера PAD. 2040 ; Ввести в текущую ячейку выходного буфера PAD литеру, код которой в стеке 2041 ; Для использования между <# и U#> 2042 LHOLD: .DB 4 2043 .TEXT "HOLD" ; ( литера −− ) 2044 .DW LBLANK 2045 HOLD: .DW JHOLD 2046 JHOLD: PPRM rlHLD 1 − 2047 FX<0 HOLD1 2048 PPRM rrHLD 1 − PPM rrHLD 255 2049 HOLD1: PPM rlHLD 2050 PPRM rrHLD RME ∗ + 1 EE 4 − MA 2051 PKRM03 KMA 2052 JDROP: 1 ; Да, это обработчик DROP 2053 NDROP: RM3 + M3 ; А сюда сваливается 2DROP 2054 KGOTO9
Реализация из SP-Forth 4.20:
: HOLD ( char -- ) \ 94 \ Добавить char к началу форматной числовой строки. \ Исключительная ситуация возникает, если использовать HOLD \ вне <# и #>, ограничивающивающих преобразование чисел. HLD @ CHAR- DUP SYSTEM-PAD U< IF -17 THROW THEN DUP HLD ! C! ;
Советская реализация[править]
У Баранова-Ноздрунова приводится следующее определение слова HOLD (стр. 37):
: HOLD ( C ---> ) -1 HLD +! HLD @ C! ;
Описание и определение слова HOLD в ядре ФОРТ-ЕС:
HOLD С-> ПЕРЕНЕСТИ ЛИТЕРУ С НА ВЕРШИНУ БУФЕРА PAD 37 Экран номер 37 ( 31.03.86 PAD HOLD ALPHA <# #> # #S SIGN ) : HOLD ( C-> ) -1 HLD +! HLD @ С! ;
В FORTH ИТЭФ слово HOLD было примитивом, вот его определение:
HEAD 204Q,'HOL',304Q,HOLD ; HOLD DEC WORD PTR [DI]+70Q POP AX MOV BX, [DI+70Q] MOV BYTE PTR [BX], AL NEXT
Ссылки[править]
- Исходный текст слова HOLD в Каллисто Классик 1.0
- Слово HOLD в стандарте ANS Forth (англ.)
- Слово HOLD в черновике Forth 200x (англ.)
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |