Блок

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

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

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

Реализация[править]

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

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

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

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

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

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

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


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


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