SIGN: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 5: | Строка 5: | ||
== Ввод слова SIGN == | == Ввод слова SIGN == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша 4|{{Серая клавиша|4}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша 4|{{Серая клавиша|4}}]] | ||
== SIGN в стандарте ANS Forth == | == SIGN в стандарте ANS Forth == | ||
Строка 38: | Строка 35: | ||
== Реализация == | == Реализация == | ||
В соответствии со стандартом Форт−79 и последующими, слово SIGN берёт свой аргумент с вершины стека. Обычно SIGN используется непосредственно после [[U♯S|U#S]] | |||
<pre> | |||
3764 ;#SIGN | |||
3765 ; SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. | |||
3766 ; Ввести знак "минус" в выходной буфер PAD, если x<0 | |||
3767 ; Обычно используется непосредственно после U#S | |||
3768 LSIGN: .DB 4 | |||
3769 .TEXT "SIGN" | |||
3770 .DW LEFDIGS | |||
3771 SIGN: .DW CALL, ZLESS, ZBRAN,SIG, LITB | |||
3772 .DB 45 | |||
3773 .DW HOLD | |||
3774 SIG: .DW EXIT | |||
</pre> | |||
=== Советская реализация === | |||
Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37): | Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37): | ||
: SIGN ( A ---> ) 0< IF '-' HOLD THEN ; | : SIGN ( A ---> ) 0< IF '-' HOLD THEN ; |
Версия от 11:00, 10 ноября 2017
SIGN (знак) — стандартное слово Каллисто.
SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно.
Вводит знак "минус" в выходной буфер PAD, если n<0
Ввод слова SIGN
В режиме ЛАТ последовательно нажмите четыре клавиши 1 7 БП 4
SIGN в стандарте ANS Forth
6.1.2210 SIGN CORE ( n -- ) Если n - отрицательное, добавляет знак "минус" в начало выходной строки отображаемого числа. Неопределенная ситуация существует, если SIGN выполняется вне <# #> ограничивающих преобразование числа.
История
Начиная с Форта-79, SIGN берёт свой аргумент с вершины стека. Это означает, что обращение к SIGN в Каллисто обычно выглядит так: ↔ SIGN
SIGN в предыдущем стандарте Forth-83 (англ.)
SIGN n -- 83 If n is negative, an ASCII "-" (minus sign) is appended to the pictured numeric output string. Typically used between <# and #> .
SIGN в стандарте Forth-79 (англ.)
SIGN n -- C,140 Insert the ASCII "-" (minus sign) into the pictured numeric output string, if n is negative.
SIGN в fig-FORTH Release 1 glossary, май 1979 (англ.)
SIGN n d --- d L0 Stores an ascii "-" sign just before a converted numeric output string in the text output buffer when n is negative. n is discarded but double number d is maintained. Must be used between <# and #>.
Реализация
В соответствии со стандартом Форт−79 и последующими, слово SIGN берёт свой аргумент с вершины стека. Обычно SIGN используется непосредственно после U#S
3764 ;#SIGN 3765 ; SIGN ( x −− ) Добавить к форматной строке литеру '−', если число x отрицательно. 3766 ; Ввести знак "минус" в выходной буфер PAD, если x<0 3767 ; Обычно используется непосредственно после U#S 3768 LSIGN: .DB 4 3769 .TEXT "SIGN" 3770 .DW LEFDIGS 3771 SIGN: .DW CALL, ZLESS, ZBRAN,SIG, LITB 3772 .DB 45 3773 .DW HOLD 3774 SIG: .DW EXIT
Советская реализация
Определение слова SIGN совпадает у Юрия Семёнова (стр. 100) и Баранова-Ноздрунова (стр. 37):
: SIGN ( A ---> ) 0< IF '-' HOLD THEN ;
Определение слова SIGN в ядре ФОРТ-ЕС:
SIGN N-> ДОБАВИТЬ В ФОРМАТНУЮ СТРОКУ ЗНАК 37 МИНУС, ЕСЛИ ЧИСЛО N ОТРИЦАТЕЛЬНО Экран номер 37 ( 31.03.86 PAD HOLD ALPHA <# #> # #S SIGN ) : SIGN ( N->) 0< IF C" - HOLD THEN ;
Определение слова SIGN в FORTH ИТЭФ:
HEAD 204Q,'SIG',316Q,SIGN,$COL ; SIGN DW ROT,ZLESS,ZBRAN,SIG-$,LIT,55Q,HOLD SIG: DW SEMI
Ссылки
- Исходный текст слова SIGN в Каллисто Классик 1.0
- Слово SIGN в стандарте ANS Forth (англ.)
- Слово SIGN в черновике Forth 200x (англ.)
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |