Текущая версия |
Ваш текст |
Строка 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 -- 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.
| |
|
| |
| == Реализация ==
| |
| <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://www.forth200x.org/documents/html/block.html#block:UPDATE Слово UPDATE в черновике Forth 200x] ''(англ.)'' |
| * Слово [http://forth-standard.org/standard/block/UPDATE 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: |
Строка 25: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Работа с внешней памятью Каллисто]] | | [[Категория:Работа с внешней памятью Каллисто]] |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 BLOCK]]
| |
| [[Категория:2012 BLOCK]]
| |