B/BUF

Материал из ПМК вики
Перейти к навигации Перейти к поиску

B/BUF (читается «би-дробь-баф») — фортовское слово Каллисто. Константа, число байт в блочном буфере.

B/BUF          ( -- 3072 )                     Размер буфера. Число 3072.

Примитив B/BUF кладёт на стек число 3072, число байт в 3Кб буфере Каллисто.

Ввод слова B/BUF

В режиме ЛАТ последовательно нажмите клавиши  В/О     P   F   ÷     Р-ГРД-Г   В/О   3   П 

Детали реализации

Слово B/BUF названо константой по его действию. В Каллисто оно не имеет отношения к порождающему слову CONSTANT и является примитивом.

Слово B/BUF делает шитый код короче и быстрее. B/BUF засылает в стек число 3072 в обход механизма литералов. Это также ускоряет время компиляции приложения, существенный плюс для Каллисто.

История

Название слова B/BUF происходит от английского «bytes per buffer», что переводится, как «байт в буфере».

В Форте в буфере было 1024 байта. Будьте внимательны при переносе старых программ на Каллисто. Если B/BUF используется не для получения числа байт в буфере, а просто для занесения в стек 1024, замените B/BUF на число 1024.

B/BUF в предыдущем стандарте Forth-83 (англ.)

     B/BUF        -- 1024                           "bytes-per-buffer"
          A constant leaving 1024, the number of bytes per block
          buffer.

B/BUF в стандарте Forth-79 (англ.)

B/BUF          -- 1024                           "bytes-per-buffer"
    A constant leaving 1024, the number of bytes per block buffer.

B/BUF и B/SCR в fig-FORTH Release 1 glossary, май 1979 (англ.)

 B/BUF          --- n
        This constant leaves the number of bytes per disc buffer, the byte
        count read from disc by BLOCK.

 B/BUF is the number of bytes read from the disc, usually one sector. B/BUF
 must be a power of two (64, 128, 256, 512 or 1024).

 B/SCR --- n
        This constant leaves the number of blocks per editing screen. By
        convention, an editing screen is 1O24 bytes organized as 16 lines of
        64 characters each.

 Constant B/SCR has the value of the number of buffers per screen; 
 i.e. 1024 / B/BUF. 

Реализация

Описание и определение константы B/BUF в ядре ФОРТ-ЕС:

B/BUF   * ->1024 ЧИСЛО БАЙТОВ В БЛОЧНОМ БУФЕРЕ                  7

                      Экран номер 7
( 09.09.86 КОНСТАНТЫ И СИСТЕМНЫЕ ПЕРЕМЕННЫЕ      )

1024  CONSTANT B/BUF ( ДЛИНА БУФЕРА ДЛЯ ЭКРАНА)

Вместо константы B/BUF 1K в FORTH ИТЭФ была константа 1K

Вот её определение:

            HEAD     202Q,'1',313Q,BBUF,$CON              ; BBUF
            DW 1024

Ссылки


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


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