Слово ↵

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

(возврат каретки, стрелка вниз с поворотом влево) — стандартное слово Каллисто.

↵              ( -- )                          Возврат каретки. Продолжить вывод с начала следующей строки.
Пример работы слова ↵

Вывести на терминал возврат каретки и перевод строки. Последующий вывод появится в начале следующей строки.

Ввод слова ↵

В режиме NUM последовательно нажмите две клавиши  F   В↑ 

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

6.1.0990   CR                                   "c-r"                      CORE
           ( -- )
           Заставляет последующий вывод появляться в начале следующей строки.

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

     CR           --                            M,79             "c-r"
          Displays a carriage-return and line-feed or equivalent
          operation.

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

CR                                           160              "c-r"
    Cause  a carriage-return and line-feed to occur at the current
    output device.

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

CR                                              L0
       Transmit a carriage return and line feed to the selected output
       device.

История

Слово CR является одним из наиболее старых и устоявшихся слов Форта.

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

Реализация

Слово ↵ в ФОРТ-ЕС называлось CR и было примитивом. Вот его описание и опубликованная часть определения:

CR        -> ВЫВЕСТИ НА ТЕРМИНАЛ ПЕРЕВОД СТРОКИ                 6

                    Экран номер 6
( 09.09.86 KEY CR EMIT TYPE (EXPECT/ RBLK MBLK )
(  следующие определения дают только имена процедур)

CODE  EMIT ( С-> ВЫВЕСТИ ЛИТЕРУ С КОДОМ С НА ТЕРМИНАЛ) END-CODE

В FORTH ИТЭФ слово ↵ называлось CR

Также в FORTH ИТЭФ был примитив RC для вывода CR без LF через примитив EMIT

Вот эти определения:

             HEAD    204Q,'EMI',324Q,EMIT,$EMIT           ; EMIT
   $EMIT     LABEL   FAR
             POP   AX
   ENT$:     PUSH  AX
             MOV   AH, 15
             INT   16
             POP   AX
             MOV   AH, 14
             JMP   $EM
   PRINT:    MOV   DX, 0   ; Установка номера принтера
             SUB   AH, AH
             INT   23
             TES   AH, 51Q
             JE    OK
   ERR4:     MOV   AL, AH
             ADD   AL, 60Q
             MOV   AH, 14
             INT   16
             MOV   DX, OFFSET ERMES4
             MOV   AH, 9H
             INT   21H
             JMP   TYPE$
   ERMES4:   DB   ' PRINTER ERROR $'

             HEAD    202Q,'R',303Q,RC                     ; RC
             MOV   AX, 13
             JMP   ENT$
             ...
            HEAD     202Q,'C',322Q,CR,$COL                ; CR
            DW LIT,15Q,EMIT,LIT,12Q,EMIT,SEMI

Метки $EM и OK находится в определении EMI

Ссылки


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


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