Программная эмуляция 1818ВГ93
ZXNet echo conference «real.speccy»
From Maxim Timonin → To All 2 January 2003
посвященный переделке 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'у и всем тем другим,
кто выразил интерес и поддержку (моральную и интеллектуальную) нашему
начинанию.
Тимонин Максим aka Максагор.
===========================
КОНЕЦ