Редактирование: ‗RW
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''_RW''' — | '''_RW''' — встроенное слово [[Каллисто]]. Низкоуровневый ввод/вывод [[блок]]а. | ||
_RW ( c1 c2 −− ) Чтение/запись (c2=1/0) блока номер c1. | _RW ( c1 c2 −− ) Чтение/запись (c2=1/0) блока номер c1. | ||
c1 − номер [[экран]]а ([[блок]]а), к которому происходит обращение | c1 − номер [[экран]]а ([[блок]]а), к которому происходит обращение | ||
Строка 8: | Строка 8: | ||
== Ввод слова _RW == | == Ввод слова _RW == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши {{ШГ→}} [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша В↑|{{Серая клавиша|В↑}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша ШГ вправо|{{Чёрная клавиша|ШГ→}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша В↑|{{Серая клавиша|В↑}}]] | ||
== История == | == История == | ||
Слово _RW имеет своим прототипом слово R/W из Форт ИТЭФ и fig-Форта, но в [[Каллисто]] адрес буфера постоянен и, как параметр, не передаётся. К сожалению, имя R/W конфликтует со [http://forth.sourceforge.net/standard/dpans/dpans11.htm#11.6.1.2056 словом R/W] из стандартов ANS FORTH и [http://www.forth200x.org/documents/html3/file/RDivW.html Форт-2012]. | Слово _RW имеет своим прототипом слово R/W из Форт ИТЭФ и fig-Форта, но в [[Каллисто]] адрес буфера постоянен и, как параметр, не передаётся. К сожалению, имя R/W конфликтует со [http://forth.sourceforge.net/standard/dpans/dpans11.htm#11.6.1.2056 словом R/W] из стандартов ANS FORTH и [http://www.forth200x.org/documents/html3/file/RDivW.html Форт-2012]. | ||
Подчёркивание часто ставится в начале имён служебных или системно-зависимых библиотечных функций. Хотя слово _RW относительно стандартно, опираясь на R/W из fig-Форта, сложно придумать сценарий, в котором | Подчёркивание часто ставится в начале имён служебных или системно-зависимых библиотечных функций. Хотя слово _RW относительно стандартно, опираясь на R/W из fig-Форта, сложно придумать сценарий, в котором прикладному программисту пришлось бы обращаться к нему напрямую. При необходимости заголовок _RW можно исключить, освободив место в [[Память программ|памяти программ]]. | ||
=== R/W в fig-FORTH Release 1 glossary, май 1979 (англ.) === | === R/W в fig-FORTH Release 1 glossary, май 1979 (англ.) === | ||
Строка 24: | Строка 24: | ||
== Реализация == | == Реализация == | ||
В ФОРТ-ЕС общением с диском занимались [[примитив]]ы RBLK и WBLK | В ФОРТ-ЕС общением с диском занимались [[примитив]]ы RBLK и WBLK | ||
Строка 77: | Строка 39: | ||
</PRE> | </PRE> | ||
Пример реализации R/W из fig-Форта, симулирующий блоки в ОЗУ: | |||
<PRE> | |||
HEX | |||
4000 CONSTANT LO ( начало буферной области ) | |||
6800 CONSTANT HI ( эквивалент 10 экранов ) | |||
: _RW >R ( сохранить boolean ) | |||
B/BUF × LO + ↑ | |||
HI > 6 ?ERROR ( проверка диапазона ) | |||
R> IF ( чтение ) ↔ ENDIF | |||
B/BUF CMOVE ; | |||
</PRE> | |||
Определение слова R/W в FORTH ИТЭФ: | Определение слова R/W в FORTH ИТЭФ: | ||
<PRE> | <PRE> |