Редактирование: UPDATE

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
'''UPDATE''' (изменить, обновить) — стандартное слово [[Каллисто]].
'''UPDATE''' (изменить, обновить) — стандартное слово [[Каллисто]].
UPDATE        ( −− )                              Отметить блочный буфер, как изменённый.
 
Устанавливает в [[буфер]]е флаг "спасения".
Устанавливает в [[буфер]]е флаг "спасения".


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


== UPDATE в стандарте ANS Forth ==
== UPDATE в стандарте ANS Forth ==
<PRE>
  7.6.1.2400  UPDATE                                                      BLOCK
  7.6.1.2400  UPDATE                                                      BLOCK
             ( -- )
             ( -- )
Строка 22: Строка 14:
         См.: 7.6.1.0800 BLOCK, 7.6.1.0820 BUFFER, 7.6.1.1559 FLUSH, 7.6.1.2180  
         См.: 7.6.1.0800 BLOCK, 7.6.1.0820 BUFFER, 7.6.1.1559 FLUSH, 7.6.1.2180  
             SAVE-BUFFERS.
             SAVE-BUFFERS.
</PRE>
== История ==
В 1968 году Чак Мур работал в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово UPDATE
UPDATE позволял пометить блок, чтобы он был записан обратно на диск, когда понадобится его буфер (или словом [[FLUSH]]). Это реализовывало виртуальную память.


Английское слово [http://www.lingvo-online.ru/ru/Translate/en-ru/update ''update''] означает «обновить».


=== UPDATE в предыдущем стандарте Forth-83 (англ.) ===
== UPDATE в предыдущем стандарте Forth-83 (англ.) ==
       UPDATE      --                            79
       UPDATE      --                            79
           The currently valid block buffer is marked as modified.
           The currently valid block buffer is marked as modified.
Строка 39: Строка 24:
           FLUSH or SAVE-BUFFERS .
           FLUSH or SAVE-BUFFERS .


=== UPDATE в стандарте Forth-79 (англ.) ===
 
== UPDATE в стандарте Forth-79 (англ.) ==
  UPDATE                                      229
  UPDATE                                      229
     Mark  the  most recently referenced block  as  modified.  The
     Mark  the  most recently referenced block  as  modified.  The
Строка 46: Строка 32:
     different block, or upon execution of SAVE-BUFFERS.
     different block, or upon execution of SAVE-BUFFERS.


=== UPDATE в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
 
== UPDATE в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
  UPDATE                                          L0
  UPDATE                                          L0
         Marks the most recently referenced block (pointed to by PREV) as
         Marks the most recently referenced block (pointed to by PREV) as
Строка 52: Строка 39:
         disc should its buffer be required for storage of a different block.
         disc should its buffer be required for storage of a different block.


== Реализация ==
<pre>
  66 rrBUFBLK        .EQU    5094                  ; 15094 = 3af6 Номер блока в буфере и признак UPDATE
  67 rlBUFBLK        .EQU    5095
2441 ;#UPDATE
2442 ; UPDATE          ( −− )                              Отметить блочный буфер, как изменённый.
2443 LUPDAT:        .DB    6
2444                .TEXT  "UPDATE"                ; ( −− )
2445                .DW    LDEFIN
2446 UPDAT:          .DW    JUPDAT
2447 JUPDAT:        128  PPM rrBUFBLK              ; Установить в буфере флаг "спасения".
2448                KGOTO9
</pre>
=== Советская реализация ===
Описание и определение слова UPDATE в ядре ФОРТ-ЕС:
<PRE>
UPDATE      -> ОТМЕТИТЬ ТЕКУЩИЙ БЛОК КАК ИЗМЕНЕННЫЙ          25
                    Экран номер 25
( 31.03.86    +BUF  BUFFER  BLOCK  EMPTY-BUFFERS  UPDATE  )
: UPDATE ( -> )  PREV @ @ 32768 OR PREV @ ! ;
</PRE>
В FORTH ИТЭФ слово UPDATE было [[примитив]]ом, вот его определение:
<PRE>
            HEAD    206Q,'UPDAT',305Q,UPDAT              ; UPDATE
            MOV  BX, 74Q[DI]
            OR  [BX],  100000Q
            NEXT
</PRE>


== Ссылка ==
== Ссылка ==
* {{Исходник|UPDATE|UPDATE}}
* Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.2400 UPDATE] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.2400 UPDATE] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth-standard.org/standard/block/UPDATE UPDATE] в черновике Forth 200x ''(англ.)''
* Слово [http://www.forth200x.org/documents/html3/block/UPDATE.html UPDATE] в черновике Forth 200x ''(англ.)''
* [https://en.wikipedia.org/wiki/Dirty_bit Dirty bit в английской Википедии] ''(англ.)''
* [https://en.wikipedia.org/wiki/Dirty_bit Dirty bit в английской Википедии] ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\10.WWOD-WYWOD ВВОД-ВЫВОД] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf3/sf3.html The Editor (and Staff)] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''




Строка 97: Строка 49:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Работа с внешней памятью Каллисто]]
[[Категория:Работа с внешней памятью Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:1994 BLOCK]]
[[Категория:2012 BLOCK]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)