SPACES: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
(Новая страница: «'''SPACES''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова…»)
 
 
(не показаны 34 промежуточные версии этого же участника)
Строка 1: Строка 1:
'''SPACES''' — стандартное слово [[Каллисто]].
'''SPACES''' (пробелы) — стандартное слово [[Каллисто]].
SPACES        ( b −− )                            Если b>0, отобразить b пробелов шириной в цифру.
Вывод заданного числа [[Символ с кодом 31|«цифровых» (шириной в цифру) пробелов]] на [[индикатор]].
 
== Ввод слова SPACES ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша 6|{{Серая клавиша|6}}]] {{ШГ←}} [[Клавиша С/П|{{Чёрная клавиша|С/П}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 1|{{Серая клавиша|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]], предназначен для текста. Он гораздо уже цифр и «цифрового» пробела:
<pre>
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
</pre>
Реализация из SP-Forth 4.20:
<pre>
: SPACES ( n -- ) \ 94
\ Если n>0 - вывести на дисплей n пробелов.
  DUP 1 < IF DROP EXIT THEN
  BEGIN
    DUP
  WHILE
    BL EMIT 1-
  REPEAT DROP
;
</pre>
 
=== Советская реализация ===
У Баранова-Ноздрунова (стр. 34) и Юрия Семёнова (стр. 34) приводится следующее определение слова SPACES
  : SPACES  ( N ---> )    FOR SPACE NEXT ;
Описание и определение слова SPACES в ядре ФОРТ-ЕС:
<PRE>
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 ;
</PRE>
Определение слова SPACES в FORTH ИТЭФ:
<PRE>
            HEAD    206Q,'SPACE',323Q,SPACS,$COL        ; SPACES
            DW  ZERO,MAX,DDUP,ZBRAN,SP1-$,ZERO,XDO
  SPA:      DW  SPACE,XLOOP,SPA-$
  SP1:      DW  SEMI
</PRE>
 
== Ссылки ==
* {{Исходник|SPACES|SPACES}}
* См. слова [[BL]] [[SPACE]] [[BLANK]]
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2230 SPACES] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth-standard.org/standard/core/SPACES SPACES] в черновике Forth 200x ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\01.OSNOWY%20FORTA ОСНОВЫ ФОРТА] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf1/sf1.html Fundamental Forth] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
 


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Терминальный ввод/вывод Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]

Текущая версия от 18:01, 10 ноября 2017

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

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


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


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