Вернуться на ГЛАВНУЮ страницу
Вернуться к СПИСКУ СТАТЕЙ


Автор: Максим Тимонин aka Максагор
Дата:
19.10.2002 г.


HDD-проект (новая TR-DOS)

Предыстория

Началось все с того, что я стал обладателем Спектрума, но не обычного ZX-128 с дисководом и AY, а ATM-turbo 2+ с кучей дополнительных прибамбасов, таких как расширенная графика, мегабайт памяти, более гибкая структура управления адресным пространством, контроллер PC-клавиатуры и, что очень важно - встроенный контроллер IDE HDD. И, что еще немаловажно, я обладал софтом под эти навороты в значительном количестве, преимущественно под операционную систему CP/M. Но время шло, и из софта у меня в основном прибавлялось только то, что написано под TR-DOS. Стопка дискет в коробке перед компом росла (я активно юзал интернет в поисках новинок для Спекки), и, сколько я ни пытался их раскладывать и классифицировать, каждая крупная посиделка за моим любимым ZX приводила к образованию бесформенной кучи 5.25" и 3.5" дискет с играми, системками и демками на рабочем столе, в которой можно было утонуть, если выражаться образно. Это было тем более обидно, что уже более сорока дискет софта под CP/M были перенесены на винчестер и удобно там расположились. Но подобная приятная перспектива ждала, в лучшем случае, только еще паре десятков дискет с iS-DOS, да и то только в том случае, если я раздобуду где-нибудь соответствующий драйвер. Острота проблемы от этого нисколько не уменьшится. Надо было что-то делать, тем более, что стала поступать информация, что на Скорпионе, посредством карточки SMUC и "теневика" эта проблема уже во многом решена. Но что годится для Скорпиона, то не всегда хорошо для других Спектрумов, а уж Зонов с МОА в этом постарались... :о) Превращать свой Спек в Скорпион-совместимый (а именно такой способ подключения SMUC к другим ZX предлагался МОА) у меня не было никакого желания, да и в случае с ATM это было практически невозможно технически, слишком разные архитектуры у Скорпа и ATM-2+(в котором ZX-архитектура лишь одна из возможных). Надо было придумать что-то свое, более универсальное, чтобы подходило для любого клона Спектрума, чтобы было достаточно лишь подправить ПЗУ и не требовалось бы никакой, или почти никакой "паяльной самодеятельности". Но я был один, да и кодинг не мой конек, так что, до поры до времени, мечты оставались мечтами. Ситуация стала меняться после того, как я стал налаживать контакты с другими активными спектрумистами и прежде всего с ATMщиками, чему очень способствовало создание сайта поддержки ATM.

Рождение и развитие проекта

Налаживая контакты с другими спектрумистами, я искал единомышленников, первыми из которых стали ART и T!M0N. В переписке с ними начали вырисовываться контуры проекта, призванного разрешить эту проблему. Позже ART из-за перемен в жизни (окончание института и пр.) временно пропал из вида, а мы с T!M0Nом, согласовав основные позиции, начали потихоньку работать над проектом. Первоначальный замысел состоял в повторении схемы SMUCа, но без использования теневика - то есть винт должен был разбиваться на TRD-образы, рассортированные по подкаталогам. Основной переделке, конечно, должна была подвергнуться TR-DOS, которую надо было заставить работать с винчестером, хотя бы через точку #3D13. Одновременно с этим планировалось создание новой операционной системы, которая, находять частью в том же ПЗУ TR-DOS (BIOS), а частью подгружаясь с винчестера, управляла бы сменой образов TRD в виртуальных дисководах. Работа над исследованием TR-DOS и путей изменения прошивки начались, когда к нам присоединился новый член группы - UKMS[z]. С этого момента, благодаря ему, принципы проекта круто изменились. Именно он убедил нас в возможности полноценной эмуляции на Спектруме контроллера 1818ВГ93, хотя бы при работе с памятью. Более того, у него уже были заготовки такого эмулятора, так как он тоже уже давно размышлял над тем как загрузить работой HDD на своей ATM. Установление контакта посредством этого сайта с другими пользователями ATM придало в нем уверенности, что его разработки кроме него самого нужны еще кому-то. С этого момента развитие проекта вышло на прямую дорогу. Кроме того, началось обсуждение принципов новой многозадачной графической операционной системы для ZX, работающей из-под винчестера и использующей новую прошивку для запуска TRD-софта. Но если будущее проекта ОС еще неопределено, то новая прошивка TR-DOS уже, скорее не проект, а реальность:

Принципы и перспективы проекта

Сегодня я могу с уверенностью сказать, что новая прошивка TR-DOS уже существует (в данный момент проходит ее тестирование и отлов последних багов), и хочу обрисовать то, что нового она привнесет в мир Спектрума.

1) Возможность "оторваться" от реального флопа при работе с TR-DOS. Теперь 640Кб-диск - это всего-лишь логическое образование, которое может существовать на любом носителе в виде TRD-файла. Хотя путем одного оператора POKE можно будет включить прежний режим работы TR-DOS для любого устройства - ABCD. Теперь ЛЮБАЯ настоящая операционная система сможет использовать почти все богатство софта TR-DOS - хоть iS-DOS, хоть CP/M, хоть Vasya_Pupkin-DOS.

2) Как следствие этого, можно будет хранить больше 90% софта под TR-DOS на винчестере и любых других носителях (например CD-ROM или FDD в формате 720Кб MS-DOS). При этом единственным ограничением является условие, чтобы в виртуальных образах использовался стандартный формат TR-DOS. Хотя теоретически и можно поддержать образы FDI с нестандартным форматом, но для этого может не хватить верхней памяти даже мегабайтного Спектрума. Кроме этого ограничения ничто не будет мешать юзать TRD-софт с винчестера, так как программный эмулятор ВГ93 уже сейчас, с еще невыловленными до конца багами, позволяет запускать с RAM-диска программы с самыми нестандартными загрузчиками, в том числе и музыкальными.

3) Совершенно новые возможности откроются в использовании кнопки MAGIC, так как в скором времени будет радикально переработана процедура обработки NMI в TR-DOS. Кроме стандартной функции, появится возможность при помощи этой кнопки вызывать резидент, сохраняющийся в верхней памяти рядом с RAM-диском TR-DOS. В качестве резидента можно будет записать туда любую программу, но прежде всего его можно и нужно будет использовать для организации сервисной работы виртуального TRD с HDD и другими устройствами, например - для подгрузки с винчестера нового TRD (например, при запуске игры на двух образах), запись изменений в виртуальном TRD на винт, возврат из TRD-программы в операционную систему (которая, повторюсь, может быть любой!) или наоборот, продолжение, после проведенных операций, исполнения TRD-программы. Теперь не надо будет для возврата из многих программ жать на RESET. Достаточно будет выйти по MAGIC в меню резидента и выбрать опцию "выход".

4) Наконец-то верхняя память перестанет использоваться только для копирования, а станет необходимой и неотъемлемой частью Спектрума, используясь для виртуального RAM-диска и резидента. А самое главное, появится смысл в подключении новых самых нестандартных внешних устройств, потому что с "виртуализацией" TR-DOS резко возрастет занчение прочих осей, для которых проблема подключения новых суперсовременных драйвов будет заключаться только в написании соответствующего драйвера, а виртуальному RAM-TRD будет абсолютно все равно, откуда в память был загружен софт. А это значит, что ZX-SPECTRUM переступит еще одну значительную ступеньку в своем славном развитии.

На сегодня проект готов на 90%. Полностью написан эмулятор ВГ93, который осталось немного оптимизировать и отловить пару багов. Еще предстоит сделать новый обработчик MAGIC и интегрировать новый TR-DOS в общую прошивку, которая у разных клонов - разная. Предстоит также адаптировать ее к разным стандартам верхней памяти, так как пока что она работает только с памятью ATM-turbo2+, будучи написанная на этом клоне.

Минимальные требования к Спекки для новой прошивки - 1024Кб RAM.

Оптимальные - 1024Кб RAM и IDE HDD, иначе зачем эта новая прошивка вообще нужна?

В будущем, возможно будет сделана модификация прошивки и для клонов с памятью 512 и 256 килобайт. Цельный TRD, конечно в такую память не влезет, но более маленьние SCL-файлы разместить удастся, что уже хорошо.

Главным достоинством проекта в случае его успешного завершения будет то, что откроются перспективы для создания и внедрения в жизнь новых проектов ОС, так как раньше препятствием к этому служило нежелание пользователей пересаживаться на такие ОСи, теряя при этом возможность пользоваться огромным багажом TR-DOS. В результате большую часть времени другие операционки, даже будучи установленными на ZX, простаивали, в то время как старенький TR-DOS трудился, не покладая рук, скрипя дисководами, игнорируя с высокой колокольни подключенный тут же рялом, но практически девственно пустой винчестер.

С момента завершения проекта, я надеюсь, все пойдет по-другому, а именно так, как следовало бы...

Участники проекта -

Максагор

UKMS[z]

T!M0N

Выражается также благодарность Warlord'у, NUTS'у, ART'у и всем тем другим, кто выразил интерес и поддержку (моральную и интеллектуальную) нашему начинанию.