I.

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

I. (читается «ай-точка») — адаптированное слово Каллисто. Печать целого числа, за которым следует один пробел.

I.             ( n −− )                             Вывести целое n на индикатор и дать пробел.
Пример работы слова I.

Слово I. удаляет целое число из стека, преобразует и отображает его на индикаторе с учётом записанной в BASE системы счисления.

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

В режиме ЛАТ последовательно нажмите три клавиши  7     P   /−/ 

Эти нажатия оставляют клавиатуру в режиме NUM.

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

 6.1.0180   .                                   "dot"                       CORE
            ( n -- )
            Отображает n в формате свободного поля.

        См.: 3.2.1.2 Преобразование цифр, 3.2.1.3 Изображение чисел в 
            свободном поле.

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

Стандартное слово Форта "." получило новое имя, т.к. работает лишь с десятичными 12−разрядными целыми.

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

     .            n --                          M,79             "dot"
          The absolute value of n is displayed in a free field format
          with a leading minus sign if n is negative.

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

.              n --                          193              "dot"
    Display  n converted according to BASE in a free field  format
    with one trailing blank.  Display only a negative sign.

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

.             n  ---                            L0
       Print a number from a signed l6 bit two's complement value,
       converted according to the numeric BASE.
       A trailing blanks follows.
       Pronounced "dot".

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

3823 ;#Id
3824 ; I.               ( n −− )                             Вывести целое n на индикатор и дать пробел.
3825 LDOT:           .DB     2
3826                 .TEXT   "I."                    ; ( целое −− )
3827                 .DW     LXDOT
3828 DOT:            .DW CALL                        ; Удалить целое число из стека, преобразовать и отобразить его на индикаторе с учётом BASE.
3829 RDOT:           .DW XDOT, TYPE, BRAN,RSPACE

В Thinking Forth (стр. 183, Factoring Criteria) приводится следующая реализация слова i. через (.) :

: i.  ( n -- )   (.) type space ;

Реализация из SP-Forth 4.20:

: D. ( d -- ) \ 94 DOUBLE
\ Вывести d на дисплей в свободном формате.
  (D.) TYPE SPACE
;

: . ( n -- ) \ 94
\ Напечатать n в свободном формате.
  S>D D.
;

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

Определение слова i. приводится у Баранова-Ноздрунова (стр. 37):

 : i.   ( i ---> )
    ↑  |x|           ( i,iabs )
    <u#  u#s         ( i,0 )
         ↔           ( 0,i )
         sign        ( 0 )
    u#>              ( a,n )
   type  space  ;

В ядре ФОРТ-ЕС и FORTH ИТЭФ слово I. называлось . и определялось через слова D. и D.R

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

.          N ->   НАПЕЧАТАТЬ N НА ТЕРМИНАЛЕ И ДАТЬ ПРОБЕЛ  38
D.          D->  НАПЕЧАТАТЬ D НА ТЕРМИНАЛЕ И ДАТЬ ПРОБЕЛ   38
D.R         D,+N->   НАПЕЧАТАТЬ D В ПОЛЕ ДЛИНЫ +N СПРАВА   38

                     Экран номер 38
( 31.03.86    D.R  D.  .R . H.  U.  U.R  ?  )

: D.R  (D,+N-> )  ?+  >R  DUP >R  DABS
  <# #S R>  SIGN #> R> OVER  - SPACES TYPE ;
: D. ( D-> ) 0 D.R SPACE ;
: . ( N-> )  S>D  D. ;

Вот их определения в FORTH ИТЭФ:

             HEAD    203Q,'D.',322Q,DDOTR,$COL            ; D.R
             DW  TOR,SWAP,OVER,DABS,BDIGS,DIGS,SIGN,EDIGS
             DW  FROMR,OVER,SUB,SPACS,$TYPE,SEMI
             ...
             HEAD    202Q,'D',256Q,DDOT,$COL              ; D.
             DW  ZERO,DDOTR,SPACE,SEMI

             HEAD    201Q,,256Q,$DOT,$COL                 ; .
             DW  STOD,DDOT,SEMI

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


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