SPACES

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

SPACES (пробелы) — стандартное слово Каллисто.

SPACES         ( b −− )                             Если b>0, отобразить b пробелов шириной в цифру.

Вывод заданного числа «цифровых» (шириной в цифру) пробелов на индикатор.

Ввод слова SPACES

В режиме ЛАТ последовательно нажмите клавиши  1   6   ШГ←   С/П   ИП   1 

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

6.1.2230   SPACES                                                          CORE
           ( n -- )
           Если n больше нуля, отображает n пробелов.

История

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

В Форте FSP88M слово SPACES было известно под именем SPS

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

     SPACES       +n --                         M,79
          Displays +n ASCII spaces.  Nothing is displayed if +n is
          zero.

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

SPACES         n --                          231
    Transmit  n  spaces  to the current output  device.   Take  no
    action for n of zero or less.

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

SPACES        n  ---                            L0
       Transmit n ascii blanks to the output device.

Реализация

В Каллисто 1.0 1 SPACES отличается от SPACE, т.к. пробел, выводимый SPACE, предназначен для текста. Он гораздо уже цифр и «цифрового» пробела:

3737 ;#SPACES
3738 ; SPACES           ( b −− )                             Если b>0, отобразить b пробелов шириной в цифру.
3739 LSPACS:         .DB     6
3740                 .TEXT   "SPACES"                ; ( сколько −− )
3741                 .DW     LSNEXT                  ; Вывести заданное число "цифровых" (шириной в цифру) пробелов на индикатор.
3742 SPACS:          .DW CALL, LITB
3743                 .DB 31
3744                 .DW SWAP, EMI, EXIT

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

: SPACES ( n -- ) \ 94
\ Если n>0 - вывести на дисплей n пробелов.
  DUP 1 < IF DROP EXIT THEN
  BEGIN
    DUP
  WHILE
    BL EMIT 1-
  REPEAT DROP
;

Советская реализация

У Баранова-Ноздрунова (стр. 34) и Юрия Семёнова (стр. 34) приводится следующее определение слова SPACES

 : SPACES   ( N ---> )    FOR SPACE NEXT ;

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

SPACES      +N-> НАПЕЧАТАТЬ НА ТЕРМИНАЛЕ +N ПРОБЕЛОВ            23

                     Экран номер 23
( 31.03.84    LIT 2LIT LITERAL 2LITERAL SPACE SPACES )

: SPACES ( +N->) 0 OVER < IF 0 DO SPACE LOOP EXIT THEN DROP ;

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

             HEAD    206Q,'SPACE',323Q,SPACS,$COL         ; SPACES
             DW  ZERO,MAX,DDUP,ZBRAN,SP1-$,ZERO,XDO
   SPA:      DW  SPACE,XLOOP,SPA-$
   SP1:      DW  SEMI

Ссылки


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


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