UPDATE: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показано 30 промежуточных версий этого же участника) | |||
Строка 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 == | |||
<PRE> | |||
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. | |||
</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-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] ''(англ.)'' | |||
{{нет иллюстраций}} | {{нет иллюстраций}} | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | |||
[[Категория:Работа с внешней памятью Каллисто]] | [[Категория:Работа с внешней памятью Каллисто]] | ||
[[Категория:Стандартные слова]] | |||
[[Категория:1994 BLOCK]] | |||
[[Категория:2012 BLOCK]] |
Текущая версия от 17:27, 9 ноября 2017
UPDATE (изменить, обновить) — стандартное слово Каллисто.
UPDATE ( −− ) Отметить блочный буфер, как изменённый.
Устанавливает в буфере флаг "спасения".
Обычно UPDATE используется после изменения буфера и перед словом FLUSH, которое сбрасывает обновлённый блок на электронный диск.
Ввод слова UPDATE[править]
В режиме ЛАТ последовательно нажмите клавиши 3 6 K ШГ← 2 ИП
Это интересно[править]
Сбросить флаг UPDATE можно двумя способами. Либо SAVE-BUFFERS (или более короткое слово FLUSH), тогда «грязный» блок сбрасывается на диск. Либо 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.
Реализация[править]
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
Советская реализация[править]
Описание и определение слова UPDATE в ядре ФОРТ-ЕС:
UPDATE -> ОТМЕТИТЬ ТЕКУЩИЙ БЛОК КАК ИЗМЕНЕННЫЙ 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
Ссылка[править]
- Исходный текст слова UPDATE в Каллисто Классик 1.0
- Слово UPDATE в стандарте ANS Forth (англ.)
- Слово UPDATE в черновике Forth 200x (англ.)
- Dirty bit в английской Википедии (англ.)
- ВВОД-ВЫВОД в книге Л.Броуди «Начальный курс программирования на языке Форт»
- The Editor (and Staff) в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |