Блок

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

Блок (англ. block) — пронумерованная 3Кб область на внутреннем диске ЭКВМ. Каллисто использует блоки для хранения экранов, содержащих исходный текст. Творчески настроенный разработчик может использовать блоки для хранения любых текстовых или двоичных данных.

Единовременно приложению доступен один блок — тот, что загружен в буфер. При обращении к другому блоку старый должен быть записан обратно на внутренний диск или просто выброшен из памяти.

Реализация

Блоки хранятся в файлах типа "Т" (текст) с названиями Bxxx — например блок номер 15 содержится в файле с названием B015 и т.д. Эти файлы размещены в следующих каталогах, находящихся в корне диска А, встроенного в МК-161:

  • Каталог Каллисто1 содержит блоки от B001 до B060
  • Каталог Каллисто2 содержит блоки от B061 до B120
  • Каталог Каллисто3 содержит блоки от B121 до B180
  • Каталог Каллисто4 содержит все оставшиеся блоки

Диск ЭКВМ может вместить примерно 150 блоков, то есть при последовательной нумерации каталога Каллисто4 возникнуть не должно. Как только вы обращаетесь к блоку, он берётся из файла в нужном каталоге. Если файла или каталога ещё нет, Каллисто их создаёт на вашем диске.

Пустые (и несуществующие) блоки считаются состоящими целиком из пробелов.

История

Блоки появились в языке Форт, где занимали всего 1Кб и были реализованы на уровне секторов диска, минуя файловую систему.

Этот уровень в ЭКВМ недоступен, поэтому блоки пришлось реализовать поверх файловой системы. Также ЭКВМ не позволяет считывать и записывать области памяти размером 1Кб — либо 3Кб, либо ничего. Ограничение на количество файлов внутри одного каталога тоже повлияло на реализацию блоков в Каллисто.


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


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