COPY

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

COPY (копировать, читается «копи») — встроенное слово Каллисто. Копирует экран в новый блок.

COPY           ( c1 c2 −− )                         Копировать блок c1 в блок c2.
Пример работы слова COPY

n m COPY копирует экран n на экран m

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

В режиме ЛАТ последовательно нажмите четыре клавиши  С/П   5   6    ,  

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

В некоторых Фортах это команда редактора, но её удобно иметь в ядре.

3898 ;#COPY
3899 ; COPY             ( c1 c2 −− )                         Копировать блок c1 в блок c2.
3900 ; n m COPY копирует экран n на экран m
3901 ; Часто это команда редактора, но её удобно иметь в ядре.
3902 LCOPY:          .DB     4
3903                 .TEXT   "COPY"                  ; ( откуда куда −− )
3904                 .DW     LWORDS
3905 COPY:           .DW CALL, SWAP, BLOCK,TWOM,STORE, UPDAT, BRAN,RFLUSH

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

Юрий Семёнов приводит следующее определение слова COPY (стр. 33), как пример использования слова FLUSH:

 : COPY ↔      ( в стеке m n )
        BLOCK  (         m и адрес первого байта буфера,
                         куда считан экран с номером n)
        2-     (         m и адрес ячейки, где лежит номер
                         экрана, хранящегося в буфере)
        !      ( очистка стека, номер экрана n заменён на m)
        UPDATE                 ( установка флага "спасения")
        FLUSH ;                            ( запись на диск)

Определение слова COPY в FORTH ИТЭФ тоже использует FLUSH:

             HEAD    204Q,'COP',331Q,COPY,$COL            ; COPY
             DW  SWAP,BLOCK,CFA,STORE,UPDAT,FLUSH,SEMI

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


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