SAVE-BUFFERS: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''SAVE-BUFFERS''' (сохранить буферы) — стандартное слово [[Каллисто]]. | '''SAVE-BUFFERS''' (сохранить буферы) — стандартное слово [[Каллисто]]. | ||
SAVE−BUFFERS ( −− ) Если установлен флаг UPDATE, сбросить блок на диск. | |||
Если находящийся в [[буфер]]е [[экран]] был изменён, скидывает его на диск. | Если находящийся в [[буфер]]е [[экран]] [[UPDATE|был изменён]], скидывает его на диск. [[Буфер]] остаётся распределённым, но флаг [[UPDATE]] сбрасывается. | ||
== Ввод слова SAVE-BUFFERS == | == Ввод слова SAVE-BUFFERS == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 1|{{Серая клавиша|1}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 1|{{Серая клавиша|1}}]] {{ШГ←}} [[Клавиша ↔|{{Серая клавиша|↔}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 1|{{Серая клавиша|1}}]] | ||
== SAVE-BUFFERS в стандарте ANS Forth == | == SAVE-BUFFERS в стандарте ANS Forth == | ||
Строка 13: | Строка 13: | ||
модифицированные. | модифицированные. | ||
== SAVE-BUFFERS в предыдущем стандарте Forth-83 (англ.) == | == История == | ||
Для совместимости с Фортом слово ''buffer'' (''англ.'' буфер) в имени SAVE-BUFFERS по-прежнему используется во множественном числе, хотя в [[Каллисто]] [[буфер]] всего один. | |||
=== SAVE-BUFFERS в предыдущем стандарте Forth-83 (англ.) === | |||
SAVE-BUFFERS -- M,79 "save-buffers" | SAVE-BUFFERS -- M,79 "save-buffers" | ||
The contents of all block buffers marked as UPDATEed are | The contents of all block buffers marked as UPDATEed are | ||
Строка 20: | Строка 23: | ||
remain assigned. | remain assigned. | ||
== SAVE-BUFFERS в стандарте Forth-79 (англ.) == | === SAVE-BUFFERS в стандарте Forth-79 (англ.) === | ||
SAVE-BUFFERS 221 | SAVE-BUFFERS 221 | ||
Write all blocks to mass-storage that have been flagged as | Write all blocks to mass-storage that have been flagged as | ||
Строка 26: | Строка 29: | ||
is not completed. | is not completed. | ||
== | == Реализация == | ||
<pre> | |||
3464 ;#SAVE−BUFFERS | |||
3465 ; SAVE−BUFFERS ( −− ) Если установлен флаг UPDATE, сбросить блок на диск. | |||
3466 ; Если находящийся в буфере экран был изменён, скинуть его на диск. Буфер остаётся распределённым. | |||
3467 LSVBUF: .DB 12 | |||
3468 .TEXT "SAVE−BUFFERS" | |||
3469 .DW LMTBUF | |||
3470 SVBUF: .DW CALL, BUFN,AT, ZLESS, ZBRAN,REXIT | |||
3471 .DW ZERO,BUFN,CSTOR ; Сбросить флаг UPDATE | |||
3472 .DW BUFN,UAT, ZERO, BRAN,RRW ; Записать буфер на диск | |||
</pre> | |||
=== Советская реализация === | |||
Описание и определение слова SAVE-BUFFERS в ядре ФОРТ-ЕС: | |||
<PRE> | |||
SAVE-BUFFERS -> ЗАПИСАТЬ НА ДИСК ВСЕ ИСПРАВЛЕННЫЕ БЛОКИ 26 | |||
Экран номер 26 | |||
( 31.03.66 SAVE-BUFFERS FLUSH ) | |||
: SAVE-BUFFERS ( ->) | |||
LIMIT FIRST DO I @ 32768 AND | |||
IF I @ 32767 AND DUP I ! | |||
I 2+ SWAP WBLK THEN | |||
B/BUF 4 + +LOOP ; | |||
</PRE> | |||
== Ссылки == | == Ссылки == | ||
* См. [[EMPTY-BUFFERS]] | * {{Исходник|SAVE−BUFFERS|SAVE-BUFFERS}} | ||
* См. слова [[UPDATE]], [[FLUSH]] и [[EMPTY-BUFFERS]] | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.2180 SAVE-BUFFERS] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.2180 SAVE-BUFFERS] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [http://forth-standard.org/standard/block/SAVE-BUFFERS SAVE-BUFFERS] в черновике Forth 200x ''(англ.)'' | ||
* [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 Л.Броуди «Начальный курс программирования на языке Форт»] | |||
Строка 38: | Строка 68: | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Работа с внешней памятью Каллисто]] | [[Категория:Работа с внешней памятью Каллисто]] | ||
[[Категория: | [[Категория:Стандартные слова]] | ||
[[Категория:1994 BLOCK]] | |||
[[Категория:2012 BLOCK]] |
Текущая версия от 02:27, 19 января 2020
SAVE-BUFFERS (сохранить буферы) — стандартное слово Каллисто.
SAVE−BUFFERS ( −− ) Если установлен флаг UPDATE, сбросить блок на диск.
Если находящийся в буфере экран был изменён, скидывает его на диск. Буфер остаётся распределённым, но флаг UPDATE сбрасывается.
Ввод слова SAVE-BUFFERS[править]
В режиме ЛАТ последовательно нажмите клавиши 1 ШГ← ↔ ИП P − Р-ГРД-Г В/О 3 П П ИП × 1
SAVE-BUFFERS в стандарте ANS Forth[править]
7.6.1.2180 SAVE-BUFFERS BLOCK ( -- ) Перемещает содержание каждого модифицированного блочного буфера на запоминающее устройство. Отмечает все буферы как не модифицированные.
История[править]
Для совместимости с Фортом слово buffer (англ. буфер) в имени SAVE-BUFFERS по-прежнему используется во множественном числе, хотя в Каллисто буфер всего один.
SAVE-BUFFERS в предыдущем стандарте Forth-83 (англ.)[править]
SAVE-BUFFERS -- M,79 "save-buffers" The contents of all block buffers marked as UPDATEed are written to their corresponding mass storage blocks. All buffers are marked as no longer being modified, but may remain assigned.
SAVE-BUFFERS в стандарте Forth-79 (англ.)[править]
SAVE-BUFFERS 221 Write all blocks to mass-storage that have been flagged as UPDATEd. An error condition results if mass-storage writing is not completed.
Реализация[править]
3464 ;#SAVE−BUFFERS 3465 ; SAVE−BUFFERS ( −− ) Если установлен флаг UPDATE, сбросить блок на диск. 3466 ; Если находящийся в буфере экран был изменён, скинуть его на диск. Буфер остаётся распределённым. 3467 LSVBUF: .DB 12 3468 .TEXT "SAVE−BUFFERS" 3469 .DW LMTBUF 3470 SVBUF: .DW CALL, BUFN,AT, ZLESS, ZBRAN,REXIT 3471 .DW ZERO,BUFN,CSTOR ; Сбросить флаг UPDATE 3472 .DW BUFN,UAT, ZERO, BRAN,RRW ; Записать буфер на диск
Советская реализация[править]
Описание и определение слова SAVE-BUFFERS в ядре ФОРТ-ЕС:
SAVE-BUFFERS -> ЗАПИСАТЬ НА ДИСК ВСЕ ИСПРАВЛЕННЫЕ БЛОКИ 26 Экран номер 26 ( 31.03.66 SAVE-BUFFERS FLUSH ) : SAVE-BUFFERS ( ->) LIMIT FIRST DO I @ 32768 AND IF I @ 32767 AND DUP I ! I 2+ SWAP WBLK THEN B/BUF 4 + +LOOP ;
Ссылки[править]
- Исходный текст слова SAVE-BUFFERS в Каллисто Классик 1.0
- См. слова UPDATE, FLUSH и EMPTY-BUFFERS
- Слово SAVE-BUFFERS в стандарте ANS Forth (англ.)
- Слово SAVE-BUFFERS в черновике Forth 200x (англ.)
- ВВОД-ВЫВОД в книге Л.Броуди «Начальный курс программирования на языке Форт»
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |