Вернуться на ГЛАВНУЮ
страницу
Вернуться к СПИСКУ СТАТЕЙ
Автор: Максим Тимонин aka Максагор
Дата: 30.01.2002 г.
Примечание: опубликовано в газете "Абзац" №10
«Что за чушь он несет» - скажет кто-нибудь, прочитав этот заголовок. Как это такое возможно? А почему бы и нет? Что, только скорпионщикам с их SMUC’ом можно что ли? Имея в наличии ATM-turbo 2+ со встроенным на плате контроллером винчестера, объединившись с другими АТМщиками, я принялся за адаптацию, потому как не хочу «утонуть» в моих сотнях дискет.
Основная идея взята со SMUC’а - винчестер разбивается на коллекции образов TRD. Пока работать будут только программы, юзающие точку #3D13, но в дальнейшем планируется реализовать эмуляцию ВГ93. Вся доработка будет разбита на две части: одна - общая, независимая от типа контроллера. Другая - драйвер операций с винчестером низкого уровня - будет подключаться через стандартную керналь, так что будет достаточно просто наготовить прошивок для каждого контроллера. Как и в SMUC, любой TRD можно будет подключить к любому из четырех дисководов, отчего тот станет виртуальным. В противном случае он работатет с реальным диском. Тоже самое будет, если не подключен винчестер или неинициализирована файловая система на нем. Тогда TR-DOS просто проигнорирует все новые навороты. Планируется мирное уживание новой оси с другими обитателями винчестера - iS-DOS, CP/M и даже MS-DOS, так что можно будет прицепить этот винчестер к пЦ, слить на него скачанный с инета спековский софт, а потом подцепить обратно к ZX и юзать на здоровье!
Переключение образов можно будет производить как программно (через новые точки входа), так и аппаратно - по кнопке MAGIC+SS. Последней уделено особое внимание: вся ее новая функция заключается в том, чтобы загрузить (предварительно сохранив на винчестере в специальный буфер часть используемого для этой цели ОЗУ) системный сектор, считать координаты программы пользователя, а затем загрузить и запустить ее. Она-то и будет менять образы... Или не будет - это уже пользователь решит, что ему надо. Также в TR-DOS будет сделан прямой доступ к секторам винчестера и операциям с ними. Будет реализована возможность автостарта с винчестера.
Все вышеперечисленное позволяет совершенно по другому, на новом уровне организовать работу TR-DOS, объединяя старые возможности, с возможностью в любой момент сменить образ на любой другой. Вспомните, сколько хороших проектов осей загнулось: MythOS, DomenOS и др. На плаву держится только iS-DOS. А почему так происходит? Кто-то скажет, что лень писать софт под новые оси. Он, конечно прав, но лень-то откуда? Почему на демки и игры не лень, а поддержать в этих играх новую ось влом? Да просто все эти оси с их претензиями на форточкообразность и супер-пупер многозадачностью в пределах флоппи-дисков никому не нужны, а только добавляют тормозов, подгружая библиотеки, собирая сегментированные файлы и т.д. К тому же при запуске стандартной TR-DOS- программы все навороты теряются, так как будет юзаться вся память и все прерывания, так что оси негде спрятаться, и нечем контролировать процессы. Другое дело - винчестер: тут и тормозов нет, и ось просто необходима, для организации работы с образами. Система будет «прятаться» на винчестере, так и писать приложения чисто под нее со всеми наворотами и многозадачностью, и все это при едином центре управления образами! Это единственно реальный способ совместить приятное (TR-DOS) с полезным (нормальными возможностями осей), и также едиственная возможность усадить массового пользователя за нее (а также возможно и единственная возможность заставить массы подключить-таки себе винчестер).
Попробую описать все это наглядно. Представьте себе ось - GUI, на экране десктоп с иконками. Десктоп - это просто один из специально заюзанных системой TRD-образов. Иконки - либо файлы со ссылками. Щелкаем мышкой по одной иконке - это запуск специального приложения - открывается окошко, врубается музыка. Сворачиваем окошко, кликаем по другому приложению, по ссылке в нем подключается соответствующий TRD, открывается другое окошко, работаем в двух, переключаясь между ними. Кликаем по третьей иконке - да это же ЧВ! А значит чисто TR-DOS приложение. Тогда на винчестер сохраняются данные о текущем состоянии системы, вырубается музыка, и задачи, подключается соответствующий ссылке TRD и RUN! Когда же надо выйти из ЧВ жмем на MAGIC, открывается подгружаемая с винчестера менюшка в соответствии с которой - или возвращаемся обратно в игру, или восстанавливаем старое состояние оси, или временно замораживаем задачу и сворачиваем ее по методу MagOS, только сохраняем образ 128Кб памяти не в верхнем ОЗУ, а на винчестере. На десктопе же это выглядит как свернутое окошко на панели задач.
Далее жмем на иконку файла - это картинка. По списку расширений ищется нужное, из него берется ссылка на обслуживающую этот вид расширений утилиту, картинка сохраняется в буфер, подключается соответствующий ссылке TRD грузится вьювер (или редактор), и из буфера копируется в него картинка...
Круто? По моему да. Реально? Вполне. Сейчас проект готов на 20%. Частично оптимизирован TR-DOS, написан и отлаижвается драйвер винчестера под контроллер ATM, нашли людей, которые займутся осью.
Также ищутся люди, имеющие подробрую инфу по программированию немовского и ZX-NEXT-контроллера винчестера, или могущих самим написать под него драйвер (что предпочтительнее).
В последнее время на Спекки мало крупномасштабшых проектов, я надеюсь, что этот проект дойдет до своего успешного конца и вдохнет очередное второе дыхание в наш любимый компьютер.
Ищется информация по стандартным пЦшным MBR и BR для винчестера, чтобы сохранить совместимость с MS-DOS. Чем подробнее инфа, тем лучше. Идеальный вариант - расписано по байтам.
Над проектом работают: T!MON (AREAsoft/Sibirian Aliance) - драйвер винчестера низкого уровня, технические консультации по железу. MAX VASILJEV - принципы файловой системы. Niko SUN - ядро оси. MAKSAGOR - это я: автор идеи, написание модуля верхнего уровня, и доработка прошивки TR-DOS.
По всем вопросам пишите мне сюда: max_timonin@mail.ru
P.S. поддержим наш Спектрум!