B/BUF

Материал из ПМК вики
Версия от 18:16, 9 ноября 2017; AtH (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

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

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

Ввод слова B/BUF[править]

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

История[править]

Название слова 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 засылает в стек число 3072 в обход механизма литералов. Это также ускоряет время компиляции приложения, существенный плюс для Каллисто.

2698 ;#BDivBUF
2699 ; B/BUF            ( −− 3072 )                          Размер буфера в байтах. Число 3072.
2700 ; Многие древние программы для Форта ожидают, что эта константа равна 1024 и будут удивлены.
2701 ; Если это слово используется в чужой программе, её работоспособность на Каллисто надо проверять тщательней.
2702 LB3BUF:         .DB     5
2703                 .TEXT   "B/BUF"                 ; ( −− 3072 )
2704                 .DW     LCL0
2705 B3BUF:          .DW SCONP, 3072

Советская реализация[править]

Описание и определение константы 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

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


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


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