SAVE-BUFFERS: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
(не показаны 4 промежуточные версии этого же участника)
Строка 4: Строка 4:


== Ввод слова SAVE-BUFFERS ==
== Ввод слова SAVE-BUFFERS ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 1|{{Серая клавиша|1}}]] [[Клавиша ШГ влево|{{Чёрная клавиша|ШГ←}}]] [[Клавиша ↔|{{Серая клавиша|↔}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша -|{{Серая клавиша|−}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 1|{{Серая клавиша|1}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 1|{{Серая клавиша|1}}]] {{ШГ←}} [[Клавиша ↔|{{Серая клавиша|↔}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]   [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша -|{{Серая клавиша|−}}]]   [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 1|{{Серая клавиша|1}}]]


== SAVE-BUFFERS в стандарте ANS Forth ==
== SAVE-BUFFERS в стандарте ANS Forth ==
Строка 14: Строка 14:


== История ==
== История ==
Для совместимости с Фортом английское слово ''buffer'' (''рус.'' буфер) в имени SAVE-BUFFERS по-прежнему используется во множественном числе, хотя в [[Каллисто]] [[буфер]] всего один.
Для совместимости с Фортом слово ''buffer'' (''англ.'' буфер) в имени SAVE-BUFFERS по-прежнему используется во множественном числе, хотя в [[Каллисто]] [[буфер]] всего один.


=== SAVE-BUFFERS в предыдущем стандарте Forth-83 (англ.) ===
=== SAVE-BUFFERS в предыдущем стандарте Forth-83 (англ.) ===
Строка 30: Строка 30:


== Реализация ==
== Реализация ==
<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 в ядре ФОРТ-ЕС:
Описание и определение слова SAVE-BUFFERS в ядре ФОРТ-ЕС:
<PRE>
<PRE>
Строка 59: Строка 72:
[[Категория:Стандартные слова]]
[[Категория:Стандартные слова]]
[[Категория:1994 BLOCK]]
[[Категория: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  ;

Ссылки[править]


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.