B/BUF: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 5: | Строка 5: | ||
== Ввод слова B/BUF == | == Ввод слова B/BUF == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша В/О|{{Чёрная клавиша|В/О}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша П|{{Чёрная клавиша|П}}]] | ||
== История == | == История == | ||
Строка 44: | Строка 39: | ||
== Реализация == | == Реализация == | ||
Слово B/BUF делает [[шитый код]] короче и быстрее. B/BUF засылает в стек число 3072 в обход механизма литералов. Это также ускоряет время компиляции приложения, существенный плюс для [[Каллисто]]. | |||
<pre> | |||
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 | |||
</pre> | |||
=== Советская реализация === | |||
Описание и определение константы B/BUF в ядре ФОРТ-ЕС: | Описание и определение константы B/BUF в ядре ФОРТ-ЕС: | ||
<PRE> | <PRE> |
Текущая версия от 18:16, 9 ноября 2017
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
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |