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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''BUFFER''' (буфер) — стандартное слово [[Каллисто]]. Приписать [[буфер]] к [[блок]]у на электронном диске.
'''BUFFER''' (буфер) — стандартное слово [[Каллисто]].
  BUFFER        ( c −− a )                          Приписать буферу блок c и дать адрес буфера.
  BUFFER        ( c −− a )                          Приписать буферу блок c и дать адрес буфера. Сам блок с диска не считывать.
                                                    Сам блок с диска не считывать.
Резервирует [[блок]] в памяти и приписывает ему номер u (как и [[BLOCK]] ), но сам [[блок]] с диска не считывается.
Резервирует [[блок]] в памяти и приписывает ему номер u (как и [[BLOCK]] ), но сам [[блок]] с диска не считывается. Возвращаемый [[Единое адресное пространство|адрес]] a фиксирован и в [[Каллисто|Каллисто 1.0]] всегда равен 15096.


== Ввод слова BUFFER ==
== Ввод слова BUFFER ==
Строка 65: Строка 64:


== Реализация ==
== Реализация ==
<pre>
3483 ;#BUFFER
3484 ; BUFFER          ( c −− a )                          Приписать буферу блок c и дать адрес буфера. Сам блок с диска не считывать.
3485 ; Зарезервировать блок в памяти и приписать ему номер u (как и BLOCK ), но сам блок с диска не считывать.
3486 LBUFFE:        .DB    6
3487                .TEXT  "BUFFER"                ; ( №блока −− 15096 )
3488                .DW    LFLUSH
3489 BUFFE:          .DW CALL, BUFN
3490                .DW DUP,AT,ZLESS, ZBRAN,BR2    ; Буфер был изменён?
3491                .DW BUFN,ONEP,CAT              ; Достать номер изменённого блока
3492                .DW ZERO,RW                    ; Записать буфер на диск
3493 BR2:            .DW STORE                      ; Сохранить новый номер блока, сбросив флаг UPDATE
3494 BR3:            .DW LITP
3495                .DB 3aH,0f8H                    ; rrDISKBUF  15096 = 3af8
3496 REXIT:          .DW EXIT
</pre>
=== Советская реализация ===
Описание и определение слова BUFFER в ядре ФОРТ-ЕС:
Описание и определение слова BUFFER в ядре ФОРТ-ЕС:
<PRE>
<PRE>
Строка 107: Строка 88:
== Ссылки ==
== Ссылки ==
* {{Исходник|BUFFER|BUFFER}}
* {{Исходник|BUFFER|BUFFER}}
* См. слова [[BLOCK]], [[UPDATE]]
* Слово [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://forth-standard.org/standard/block/BUFFER BUFFER] в черновике Forth 200x ''(англ.)''
* Слово [http://forth-standard.org/standard/block/BUFFER BUFFER] в черновике Forth 200x ''(англ.)''
Строка 118: Строка 98:
[[Категория:Слова высокого уровня]]
[[Категория:Слова высокого уровня]]
[[Категория:Работа с внешней памятью Каллисто]]
[[Категория:Работа с внешней памятью Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 BLOCK]]
[[Категория:2012 BLOCK]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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