Общие сведения Картотека Игротека Люди Форум
Библиотека Галерея Мастерская Помощь сайту

      ПЭВМ Агат » Софт для PC » ToDo

Предисловие

Эмуляторы

Для M$-DOS

LiveCD M$-DOS

Для *NIX

LiveCD *NIX

Для Windows

Утилиты

dos33c2

Конвертер графики

Матроскоп

--

Агатовская часть

ToDo

Что-то зачем-то

ToDo

На текущий момент работа над эмуляторами завершена. Не, не совсем так. Правильнее так: примерно с 2004 года в моих эмуляторах, несмотря на интенсивное использование (мной же), грубых ошибок не выявлено. Мелкие находятся и исправляются где-то раз в год, но эти версии я даже не публикую, поскольку ... Ну кому важно, что одну из недокументированных команд - эмулятор на них должен останавливаться - он выполнял как "ldx #" ? И остальные ошибки примерно такие же. Мелкие дополнения, вроде загружаемых палитр или точек останова по адресу аргумента, тоже существенного значения не имеют. Пожалуй, наиболее крупное изменение - смена формата образов с nibble на AIM в сентябре 2009 (только для 840кб образов). Ну и некоторая оптимизация контроллера виртуального дисплея для Apple ][-режима. В общем, я сторонник замораживания разработок по достижении ими планируемого уровня. Возможно, будет ещё добавлена поддержка недокументированных команд. Не знаю когда.

Но жизнь идёт и из пластов истории постоянно что-то всплывает, на пятидюймовых дискетах, в основном. Поэтому за последние годы, после того, как было покончено с развитием эмулятора, многое было сделано для расширения коллекции - это касается как утилит управления образами и файлами, так и разработанного устройства для подробного и быстрого анализа дискет. А заодно и их записи. Это касается формата 840 кб. В проекте аналогичная железка для 140 кб.

Постепенная и уже почти завершившаяся мной миграция с MS-DOS на FreeBSD (~1998..2004) тянет за собой и перевод всех моих программ, что уже успешно сделано, за исключением эмулятора Агата. Тупо перетащить всё что есть не так уж, может быть сложно, но мне хочется полностью переработать его для оптимизации под нынешние многоядерные системы. Рабочий поток будет разделён на виртуальную машину и виртуальные устройства ввода-вывода.

Виртуальная машина: эмуляция процессора и оперативной памяти: отдельный поток, GNU ассемблер, общение с внешним миром только через shared memory и семафоры, максимальная загрузка физического ЦПУ.

Виртуальные устройства в/в: всё остальное (дисководы, клавиатура, дисплей): GNU C, общение через X11 и, возможно, консоль (очень уж хочется хотя бы текстовые режимы сделать доступными через ssh), общение с виртуальной машиной через общую память и семафоры, физический процессор будет использоваться только по мере необходимости (фактически, это будет определятся, в основном, частотой обновления виртуального монитора).

Т.е. я хочу разделить эмулятор на блоки, работа которых мало зависит друг от друга и не требует слишком сложной синхронизации.

Помимо этого будет добавлена пара существенных свойств: мощно расширенный отладчик программ в виртуальной машине (Он как бы условно и в досовской версии есть, но хочу больше. В идеале - внутренний интерактивный дизассемблер) и динамическое конфигурирование. (Т.е. возможность включать/отключать периферию. Не только слоты, аналогичные реальной машине, а вообще любую - пульты, клавиатура, таймеры...)

Возможно, будет реализована агат-9-эмуляция эпла, но именно в такой форме, а не отдельный эмулятор Apple ][ - их и так хватает.

Это пока теория, но она понемногу обрастает подробностями, делаются мелкие наброски, тесты. Так же как и в досовской версии, здесь основной целью будет достижение предельной скоростью эмуляции. Остальное вторично. Целевая host-платформа: архитектура i386, вероятно, с поддержкой SSE2. Процы интеловские, не ниже P-IV, а может и выше (ещё буду изучать выверты нынешней системы команд и рекомендации по оптимизации кода - тогда и будет видно точно). Но не ia64. Если заработает на AMD или чём-то ещё - так я не против.

Ещё одна идея, касающаяся и эмулятора и dos33c2.exe: перевод их в CGI-форму. Но здесь мне явно не хватает знаний javascript и сопутствующих технологий, а использовать только html - удобство упадёт ниже плинтуса. Хотя сама по себе dos33c2 вполне может быть скомпилирована как скрипт, нужно только приделать к ней вместо консольного какой-то теговый интерфейс. Может быть исключив часть операций. Получится что-то вроде phpfm... Не очень удобно, но для непериодического использования или демонстрации вполне сойдет. Эмулятор же мне видится примерно также, как реализован SUNовский Lights Out Manager (LOM) - окошко, которое обновляется в реальном времени на яве, нажатия клавиш передаются на сервер, картинка передаётся пользователю. Но это всё теории :)

Автор раздела: Garnizon

Зеркало сайта