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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 7: Строка 7:
== Ввод слова UPDATE ==
== Ввод слова UPDATE ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша K|{{Синяя клавиша|K}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша K|{{Синяя клавиша|K}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
== Это интересно ==
Сбросить флаг UPDATE можно двумя способами. Либо [[SAVE-BUFFERS]], тогда «грязный» блок сбрасывается на диск. Либо [[EMPTY-BUFFERS]], тогда флаг UPDATE очищается вместе с буфером, независимо от их прошлого содержания.


== UPDATE в стандарте ANS Forth ==
== UPDATE в стандарте ANS Forth ==

Версия от 05:01, 20 июня 2016

UPDATE (изменить, обновить) — стандартное слово Каллисто.

UPDATE         ( −− )                               Отметить блочный буфер, как изменённый.

Устанавливает в буфере флаг "спасения".

Обычно UPDATE используется после изменения буфера и перед словом FLUSH, которое сбрасывает обновлённый блок на электронный диск.

Ввод слова UPDATE

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

Это интересно

Сбросить флаг UPDATE можно двумя способами. Либо SAVE-BUFFERS, тогда «грязный» блок сбрасывается на диск. Либо EMPTY-BUFFERS, тогда флаг UPDATE очищается вместе с буфером, независимо от их прошлого содержания.

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

 7.6.1.2400   UPDATE                                                       BLOCK
            ( -- )
            Отмечает текущий блочный буфер как измененный. Неопределенная 
            ситуация существует, если нет никакого текущего блочного буфера.

            UPDATE не вызывает немедленно ввод-вывод.

        См.: 7.6.1.0800 BLOCK, 7.6.1.0820 BUFFER, 7.6.1.1559 FLUSH, 7.6.1.2180 
            SAVE-BUFFERS.

История

В 1968 году Чак Мур работал в Mohasco Industries, Inc (Amsterdam NY, англ.). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово UPDATE

UPDATE позволял пометить блок, чтобы он был записан обратно на диск, когда понадобится его буфер (или словом FLUSH). Это реализовывало виртуальную память.

Английское слово update означает «обновить».

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

     UPDATE       --                            79
          The currently valid block buffer is marked as modified.
          Blocks marked as modified will subsequently be automatically
          transferred to mass storage should its memory buffer be
          needed for storage of a different block or upon execution of
          FLUSH or SAVE-BUFFERS .

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

UPDATE                                       229
    Mark  the  most recently referenced block  as  modified.   The
    block  will subsequently be automatically transferred to  mass
    storage  should  its memory buffer be needed for storage of  a
    different block, or upon execution of SAVE-BUFFERS.

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

UPDATE                                          L0
       Marks the most recently referenced block (pointed to by PREV) as
       altered. The block will subsequently be transferred automatically to
       disc should its buffer be required for storage of a different block.

Реализация

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

UPDATE       -> ОТМЕТИТЬ ТЕКУЩИЙ БЛОК KАK ИЗМЕНЕННЫЙ           25

                     Экран номер 25
( 31.03.86    +BUF  BUFFER  BLOCK  EMPTY-BUFFERS  UPDATE   )

: UPDATE ( -> )   PREV @ @ 32768 OR PREV @ ! ;

В FORTH ИТЭФ слово UPDATE было примитивом, вот его определение:

            HEAD     206Q,'UPDAT',305Q,UPDAT              ; UPDATE
            MOV  BX, 74Q[DI]
            OR   [BX],   100000Q
            NEXT

Ссылка


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


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