C_DOS (Djoni^NOT-Soft)
_
Cейчас сложно представить компьютер ZX Spectrum без Beta Disk Interface'а, много фирменных программ переделано под TR-DOS, написаны новые программы и утилиты.
На постсоветском пространстве Beta 128 Disk Interface стал стандартом, а были ли наши разработки контроллеров НГМД для ZX Spectrum?
Из известных наверно можно вспомнить это контролер для компьютера Балтик но он рассчитан на работу с операционной системой CP/M.
Хочу познакомить наших читателей с мало известной разработкой C_DOS - это дисковая операционная система была разработана в 1989 году Александром Филипповым.
Технические характеристики:
Число поддерживаемых накопителей: 4 Полезная емкость дискеты: > 800 кб Способ размещения информации: кластерный Размер каталога/подкаталога: 127 имен Число вложений подкаталогов: не ограничено Емкость RAM-диска (память 128 Кб.): 72 кб Поддержка ROM-диска: 32-800 кб Возможность динамического сохранения: 3 режима
Выдержки из документации
«C_DOS разработана как расширение операционной системы, специально для ZX Spectrum. Команды дисковой системы просто дополняют уже существующие. Практически пользователю необходимо помнить: если за словом команды следует знак "*" (звездочка), то это расширенная команда DOS.
Система поддерживает следующие устройства: четыре дисковода (приводы A, B, C, D) формата 720 Кб; RAM диск (привод E), который полезен, как дополнительный "быстрый привод" (если компьютер имеет расширенную память 128 Кб.); ROM диск (привод F), для быстрой загрузки (картридж); интерфейс CTNTRONIX; часы реального времени.
Отличительной особенностью является использование кластерной системы записи информации. Такая система предусматривает наличие на дискете таблицы размещения файлов, которая содержит данные о состоянии всех кластеров (единиц хранения информации). Это позволяет, в частности, при форматировании дискеты проверять качество носителя и, в случае обнаружения дефектных участков, исключать их из дальнейшего использования.
Контроллер имеет свой собственный RAM-буфер и не использует под системные переменные память самого компьютера. Это позволяет избежать сдвига рабочей области и делает C_DOS независимой от внешних программ, а потому совместимой практически с любым программным обеспечением вышеупомянутых компьютеров.
C_DOS поддерживает работу c подкаталогами, глубина вложений которых не ограничена. Вы имеете возможность наиболее рационально распределить пространство дискеты».
Одним из авторов программ под C_DOS был Виктор Гриненко, ниже небольшое интервью с ним.
- Добрый день. Расскажите немного о себе.
- Я физик по образованию, в те времена (конец 80-х) работал в Академии наук. Когда у нас на работе появилась 286 машина, я заинтересовался программированием. Но домой такую штуку было тогда не купить, а знакомый предложил мне наполовину собранную плату Спектрума. С этого все и началось
- Как у вас вообще появился ZX Spectrum, это был наш клон или фирменная машина?
- Это был наш клон, львовская версия. В Киеве это была самая распространенная модель.
Сначала я использовал с ней магнитофон и она имела 48к памяти.
- Как вам пришла в голову идея создать дос, была ли у вас информация о Beta Disk Interface и его клонах?
- Мысль пришла в голову Саше и он, конечно, знал о TR-DOS, у меня TR-DOS уже к тому времени тоже был. Но он требует 112 байт (если не ошибаюсь) в основной памяти и файл пишется непрерывным куском. В C_DOS же была реализована кластерная система с таблицей размещения файлов (более известная как FAT), с подкаталогами и возможностью пометки битых секторов и исключения их из использования. Моя утилита CheckFree как раз этим и занималась - проверяла свободные сектора и помечала неисправные в FAT.
Кроме того на плате находилось собственное ОЗУ для дискового буфера и хранения состояния контролера. Поэтому “magic button” для сброса дампов работала всегда без проблем, а в TR-DOS можно было от нее легко защититься разместив часть кода в определенном месте.
- Когда и как вы познакомились с Александром Филипповым?
- Кажется в начале 92 года. Я покупал что-то на радио рынке и продавец разрекламировал мне C_DOS (Convoy DOS) Филиппова. Я позвоним Саше и стал обладателем контролера с номером 29. Мне очень понравилась то, что система не требует выделения блока памяти в основной памяти компьютера и что возможно произвольное выделение дискового пространства, то есть кластерная организация.
- Расскажите о создании программ и утилит для C_DOS?
- Собственно сразу же возникла идея написания программы для копирования дискет TR-DOS на дискеты C_DOS – «BetaCopy». Потом возникла идея файл менеджера «G.Shell» по образу и подобию популярного тогда Norton Commander. Потом был «Disk Editor» подобный своему “однофамильцу” из Norton Utilities. Ну и все остальные программки, «BetaCopy» тоже была переписана под мой “стандартный интерфейс” с буквочками 5 х 8, а заодно была написана совсем уж экзотическая вещь «ToBeta», которая копировала C_DOS в TR-DOS.
Сама C_DOS тоже развивалась, Саша встроил в контролер независимые от питания часы, G.Shell показывал время в правом верхнем углу, у меня часов не было и на скриншотах их нет. Интересной штукой был RAM-DISC, это была дополнительная плата с 128 к ПЗУ, она виделась C_DOS как диск и содержала набор самых полезных программ.
Написано все это было на ассемблере (и мои утилиты и сама C_DOS) с 92 по 96 годы. Потом у Саши появилась PC-шка и все это потихоньку заглохло под давлением более производительных ПК.
- Какую среду использовали для написания и отладки программ, наверно популярные в то время ассемблер GENS и монитор-отладчик MONS или были свои наработки?
- Да вроде эти названия были :-). Они были переделаны под работу с C_DOS, последняя версия ассемблера могла писать результат частями, например, Disk Editor вышел большим и вместе с ассемблером в память не помещался.
- Расскажите конструктивно что из себя представлял контроллер C_DOS, системный разъём был рассчитан на подключения фирменных машин?
- Плата размером ~ 200 х 100 мм, на узких концах разъемы для подключения к шине компьютера с одной стороны и для подключения дисководов с другой. У меня было два 5-ти дюймовых дисковода, у Саши один 5-ти и один 3-х дюймовый.
Какой разъем был у фирменных машин я не помню, на моей стоял, кажется, 48 контактный в 2 ряда.
- Система C_DOS поддерживает работу с ROM-диском с ним тоже можно было работать как с обычной дискетой, запускать программы?
- Да, конечно. Надо было записать дискету с программами, подкаталогами и потом специальный софт делал из нее образ прошивавшийся в ПЗУ. При подключении платы ROM-диска появлялась дискета со своей буквой и она поддерживала все операции кроме операций записи.
- Да основной недостаток TR-DOS то, что он не может практически работать с дискетами, которые содержат дефектные сектора и использует память компьютера для размещения своих переменных и буфер размером 256 байт, при выполнении дисковых операций. Возможно, если бы система C_DOS получила бы распространение, развитие платформы ZX могло пойти другим путём. Ваше мнение почему контроллер не получил широкого распространения?
- Люди просто не знали о его существовании. Я сам узнал случайно. Кроме того одно дело выпустить несколько десятков плат и другое дело тысячи. Момент создания системы пришёлся на время, когда занимавшееся подобными вопросами государство просто исчезло, а бизнес отсутствовал. Впрочем, я не уверен, что он появился за прошедшие 25 лет. :-)
Судьба Спектрума другой быть не могла, так же как подковы из титана по нано-технологиям ничего не изменили бы в судьбе гужевого транспорта.
- Расскажите о работе копки "DUMP" аналог "MAGIC" кнопки Beta Disk Interface.
- Она останавливала работу программы, затем помещала в стек все регистры (команда push) и записывала на диск все 48 к памяти. Кроме того, записывалось положение указателя стека. При запуске подобной программы (а она имела специальную метку в имени, я уже подзабыл какую) система переставляла указатель стека, вытягивала из него регистры, что приводило к продолжению работы с точки останова.
Насколько я помню, 128К-режим не поддерживался в C_DOS, все работало аналогично TR-DOS, за исключением порядка размещения регистров в стеке. Но поскольку C_DOS не требовал ни буфера, ни памяти для хранения собственного состояния, получалось более устойчивое решение. Мои BetaCopy и ToBeta умели преобразовывать такие файлы из одной системы в другую.
- И последний вопрос есть ли у вас сейчас проекты на ZX spectrum , следите ли за новостями платформы?
- Нет. Последние 16 лет я работаю в софтверной промышленности. Наверно было бы, интересно полистать свою тетрадку за первый класс, но снова писать палочки и кружочки...
Комментарии
Трекбэков
Всего трекбэков 0
Ссылка трекбэка: