Редактирование: BUFFER
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''BUFFER''' (буфер) — стандартное слово [[Каллисто]] | '''BUFFER''' (буфер) — стандартное слово [[Каллисто]]. | ||
Резервирует [[блок]] в памяти и приписывает ему номер u (как и [[BLOCK]] ), но сам [[блок]] с диска не считывается. | |||
Резервирует [[блок]] в памяти и приписывает ему номер u (как и [[BLOCK]] ), но сам [[блок]] с диска не считывается | |||
== Ввод слова BUFFER == | == Ввод слова BUFFER == | ||
Строка 8: | Строка 7: | ||
== BUFFER в стандарте ANS Forth == | == BUFFER в стандарте ANS Forth == | ||
7.6.1.0820 BUFFER BLOCK | 7.6.1.0820 BUFFER BLOCK | ||
( u -- a-addr ) | ( u -- a-addr ) | ||
Строка 30: | Строка 28: | ||
См.: 7.6.1.0800 BLOCK. | См.: 7.6.1.0800 BLOCK. | ||
== BUFFER в предыдущем стандарте Forth-83 (англ.) == | |||
BUFFER u -- addr M,83 | BUFFER u -- addr M,83 | ||
Assigns a block buffer to block u. addr is the address of | Assigns a block buffer to block u. addr is the address of | ||
Строка 46: | Строка 38: | ||
block buffer assigned to block u by BUFFER are unspecified. | block buffer assigned to block u by BUFFER are unspecified. | ||
== BUFFER в стандарте Forth-79 (англ.) == | |||
BUFFER n -- addr 130 | BUFFER n -- addr 130 | ||
Obtain the next block buffer, assigning it to block n. The | Obtain the next block buffer, assigning it to block n. The | ||
Строка 56: | Строка 48: | ||
unsigned number. | unsigned number. | ||
== BUFFER в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
BUFFER n --- addr | BUFFER n --- addr | ||
Obtain the next memory buffer, assigning it to block n. If the | Obtain the next memory buffer, assigning it to block n. If the | ||
Строка 63: | Строка 55: | ||
The address left is the first cell within the buffer for data | The address left is the first cell within the buffer for data | ||
storage. | storage. | ||
== История == | |||
Слово BUFFER появилось в 1970 году, когда Чак Мур перенёс Форт на ассемблер Univac 1108 для программирования системы ввода заказов по сети выделенных линий в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). | |||
BUFFER избегало чтения диска, когда было известно, что желаемый блок пуст. | |||
== Реализация == | == Реализация == | ||
Определение слова BUFFER в ядре ФОРТ-ЕС: | |||
<PRE> | <PRE> | ||
Экран номер 25 | Экран номер 25 | ||
( 31.03.86 +BUF BUFFER BLOCK EMPTY-BUFFERS UPDATE ) | ( 31.03.86 +BUF BUFFER BLOCK EMPTY-BUFFERS UPDATE ) | ||
Строка 94: | Строка 71: | ||
R@ @ 0< IF ( УСТАНОВЛЕН ПРИЗНАК "UPDATE") | R@ @ 0< IF ( УСТАНОВЛЕН ПРИЗНАК "UPDATE") | ||
R@ 2+ R@ @ 32767 AND WBLK THEN R@ ! R@ PREV ! R> 2+ ; | R@ 2+ R@ @ 32767 AND WBLK THEN R@ ! R@ PREV ! R> 2+ ; | ||
</PRE> | </PRE> | ||
== Ссылки == | == Ссылки == | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.0820 BUFFER] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans7.htm#7.6.1.0820 BUFFER] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [http://www.forth200x.org/documents/html3/block/BUFFER.html BUFFER] в черновике 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 Л.Броуди «Начальный курс программирования на языке Форт»] | * [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 Л.Броуди «Начальный курс программирования на языке Форт»] | ||
Строка 118: | Строка 84: | ||
[[Категория:Слова высокого уровня]] | [[Категория:Слова высокого уровня]] | ||
[[Категория:Работа с внешней памятью Каллисто]] | [[Категория:Работа с внешней памятью Каллисто]] | ||
[[Категория: | [[Категория:Слова Каллисто без стековых диаграмм]] | ||