Редактирование:
BLOCK
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == <pre> 3498 ;#BLOCK 3499 ; BLOCK ( c −− a ) Убедиться, что в буфере блок c. Дать адрес буфера. 3500 ; Положить на стек адрес первого байта в буфере с блоком, номером которого u. 3501 ; Если блок не находится в памяти, перенести его с диска в буфер. 3502 ; Если блок, занимавший буфер, был ранее изменён (UPDATE), то этот блок сначала записывается на диск, 3503 ; и только затем на его место будет занесён новый блок. 3504 LBLOCK: .DB 5 3505 .TEXT "BLOCK" ; ( №блока −− 15096 ) 3506 .DW LBUFFE 3507 BLOCK: .DW CALL, TOR ; Сохранить номер запрошенного блока на вершине стека возвратов 3508 .DW BUFN,ONEP,CAT ; Какой у нас сейчас блок в буфере? 3509 .DW I,SUB, ZBRAN,BLC ; Блок уже считан? Вернуть адрес буфера. 3510 .DW I, BUFN ; rrBUFBLK 15094 = 3af6 3511 .DW DUP,AT,ZLESS, ZBRAN,BL1 ; Блок изменялся? 3512 .DW BUFN,ONEP,CAT, ZERO,RW ; Записать старый блок 3513 BL1: .DW I,ONE,RW ; Считать запрошенный блок 3514 .DW STORE ; Сохранить новый номер блока, заодно сбросив флаг UPDATE 3515 BLC: .DW LEV ; Удалить номер блока со стека возвратов 3516 .DW BRAN,BR3 ; Вернуть наш фиксированный адрес </pre> === Советская реализация === Описание и определение слова BLOCK в ядре ФОРТ-ЕС: <PRE> BLOCK +N->A ДАТЬ АДРЕС А БУФЕРА С БЛОКОМ +N 25 Экран номер 25 ( 31.03.86 +BUF BUFFER BLOCK EMPTY-BUFFERS UPDATE ) : BLOCK ( +N->A) OFFSET @ + >R PREV @ DUP @ R@ - DUP + IF BEGIN +BUF 0= IF DROP R@ OFFSET @ - BUFFER DUP R@ RBLK 2- THEN DUP @ R@ - DUP + 0= UNTIL DUP PREV ! THEN RDROP 2+ ; </PRE> Определение слова BLOCK в FORTH ИТЭФ: <PRE> HEAD 205Q,'BLOC',313Q,BLOCK,$COL ; BLOCK DW OFSET,AT,PLUS,TOR DW PREV,AT,DUBL,X,I,SUB,ZBRAN,BLC-$ BLO: DW PBUF,ZEQU,ZBRAN,BCK-$ DW DROP,I,BUFFE,DUBL,I,ONE,RW,CFA BCK: DW DUBL,X,I,SUB,ZEQU DW ZBRAN,BLO-$,DUBL,PREV,STORE BLC: DW FROMR,DROP,TWOP,SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице