Soviet PC Emulator
(Korvet, PC/XT, PC/AT, PC/386 Clones)

Version 0.18.1 (07.10.2007)

Screenshots / Скриншоты

Guestbook / Гостевая

History / История

Links / Ссылки

Данная страничка посвящена поддержке эмулятора "Soviet PC". Эмулятор является развитием эмулятора ПЭВМ Корвет, созданного в августе-сентябре 2004 года и несколько улучшенного в 2007. В настоящее время кроме Корвета сэмулирован PC/XT-совместимый компьютер, реальные и защищенные режимы PC/AT и PC/386. На создание нормального сайта времени и интереса пока не появилось, поэтому пока пусть будет такой - традиционный. Данный сайт поддерживается как авторский (в мае 2007 с появлением Soviet PC пришел на смену старому сайту Virtual Korvet). Основной блог/сайт проекта с июня 2007 sovietpc.old-games.ru (просто с привычного narod-а перебираться трудновато)...


Soviet PC

Don't forget to activate fast OpenGL-rendering in "Video" menu after first start
При возможности включите быструю OpenGL-отрисовку в меню "Видео"



Внимание, лицензионное соглашение! Эмулятор является полностью бесплатным, предназначен для частного некоммерческого использования и используется Вами на свой страх и риск. Автор не обязуется поддерживать и развивать программу, не несет ответственности за любой ущерб и недополученную прибыль, которую повлекло за собой использование данной программы. Все права на программу остаются за автором. Если Вы не согласны со всем вышеизложенным - не скачивайте и не используйте программу (т.е. эмулятор), а если скачали - удалите.



11.10.2007 Всё-таки решил начать полную зачистку исходников от всего устаревшего кода доPCшных времен, поскольку его поддержка мешает нормально развивать мультиэмулятор (баги с клавиатурой и т.п.). Т.е. временно удаляется поддержка Корвета и код зачищается от остатков исходной Корвет-ориентированности. Остается универсальное ядро эмуляции и построенная на нем эмуляция x86-машин, которую я постепенно перенесу на скрипты (в процессе развития). Прочие платформы (в том числе и обновленная реализация Корвета) будут появляться уже изначально на скриптовом движке и с динамическими CPU-ядрами. Так что подверсии 0.18.2 возможно придется подождать до след. недели и там пока останутся только x86-машины. Зато развивать эмулятор станет значительно проще и удобнее (и быстрее)...



07.10.2007 Выложена альфа-версия 0.18.1. Пофикшены многочисленные баги (в основном с клавиатурой), появившиеся в версии 0.18.0 :) Кроме того, исправлена и улучшена поддержка AT-клавиатуры, а также повышена эффективность использования кэша рекомпиляции (максимум теперь 1024 Кб при реальных 64 Мб). Теперь "Cached %" не должен проседать даже на самых требовательных приложениях (при нормальном размере кэша). Ну и несколько небольших оптимизаций по скорости. В общем, данная подверсия является багфиксом к предыдущей, которая была очень сырой. Новый функционал и дальнейшие доработки CPU пойдут со следующей подверсии.

English: Fixed all real-mode bugs, introduced in 0.18 version, improved emulation of AT-kbd controller i8042, substantially improved recompilation cache usage, some small optimizations and speedups (i.e. this is bugfixing to previous version).



02.10.2007 Выложена первая альфа-версия из серии 0.18.x. Главное добавление - предварительная поддержка защищенного режима, так что многие DOS-приложения защищенного режима запускаются и даже зачастую работают (в частности использующие DOS-экстендер dos4gw - например, shareware Doom и т.п.). Но, естественно, много чего еще не работает по разным причинам (не только из-за процессора - причины могут быть и в эмуляции БИОС, и в клавиатуре, и в видео, и т.п.). Да и скорость пока что не очень (особенно в плане FPU-сопроцессора, который может серьезно просаживать производительность, особенно на трехмерных играх второй половины 90х). Ну да главное, что защищенку вообще удалось запустить - слишком много в ней моментов, когда малейшее отклонение от правильной реализации срывает исполнение не непосредственно в месте ошибки, а где-то дальше, и и обнаружить, в чем причина, бывает довольно трудно. Особенно когда пока ещё вообще ничего не работает и неизвестно, что правильно реализовано, а что нет... В общем, кому интересно - смотрите (багов пока много - я знаю :). Более подробный текст, как обычно, в окне "Что нового?" эмулятора (в том числе и на вроде-как английском).



08.09.2007 Совсем немного времени на эмулятор теперь удается выделять, соответственно данная версия делалась довольно долго (новое ядро всё-таки, а не мелкие дополнения). Тем не менее уже можно ознакомиться с базовой версией 0.17 (после которой, как обычно, последует серия небольших дополнений/багфиксов под номерами 0.17.x). Изменения прописаны в окне "Что нового?" программы (есть русский и английский варианты текста). Главное изменение - новое (динамическое) x86-ядро, хотя прежнее пока тоже доступно. Пока доступен только реальный режим, прочие не успел полностью активизировать - ньюансов много, времени не очень...



09.08.2007 В принципе уже стабильно тянет что-то типа 486DX2/66-70Mhz (на 2Ггц AthlonXP), будем изыскивать дальнейшие резервы несложного подъема производительности путем оптимизиции узких мест. Сложный останется на осень, видимо, поскольку он заключается в создании интеллектуального оптимизатора генерируемого кода, позволяющего поднять производительность еще не менее чем в два раза - но и возиться с ним надо будет больше времени.



06.08.2007 Релизов пока нет (рановато еще), просто некоротенькое сообщение для интересующихся. После нескольких попыток (в поисках компромисса между простотой/понятностью/краткостью кода и производительностью ядра) было успешно создано x86-ядро 2-го поколения, или динамический рекомпилятор кода (1-ым поколением было прежнее ядро-интерпретатор, 3-им поколением было бы ядро-виртуализатор - если бы до него руки когда-нибудь дошли). Рекомпилятор пока не сильно интеллектуальный, код генерирует довольно "грязный", поэтому производительность на данный момент всего лишь в 2-2.5 раза больше прежнего ядра (т.е. сравнима с производительностью ядра normal досбокса). Соответственно есть серьезный потенциал для её роста еще в несколько раз (повышением качества генерируемого кода и оптимизацией его взаимодействия с виртуальной аппаратурой), хотя возможно и не сразу. Пока основные работы ведутся в данном направлении (дополнительном выжимании из нового ядра того, что можно выжать по-быстрому - более тонкий тюнинг будет происходить далее со временем). Соответственно нормально протестирован пока только реальный режим (как минимально необходимый для работы над производительностью). Поддержка остальных режимов вроде реализована, но запускать и проверять их пока руки не дошли (поскольку для этого надо исправлять виртуальный биос или подключать реальные от 386+, т.е. отвлекаться от процессора). По завершению процесса "быстрого" выжимания производительности (видимо в течении ближайших пары недель) будет выложен апдейт 0.17 с новым ядром и пока только реальным режимом (возможно в виде отдельного CPU 486 (RM) + FPU, а может успею и 8086-80386 процессоры на него перевести). Далее уже в online-режиме будут вводиться-тестироваться остальные режимы 386/486 процессоров (Protected и Virtual86), а также более тонко тюнинговаться производительнось, ну и прочее обещанное будет делаться. Новое x86-ядро станет основным и переписываться больше не будет (разве что в плане портирования на другие языки), т.е. будет развиваться исключительно эволюционно до полной точности и максимально возможной для него скорости. Cтарое x86-ядро к концу сентября скорее всего полностью уйдет в историю, выполнив свои задачи.



18.07.2007 Ухожу в продожительный offline, дабы ничто не отвлекало от создания полноценного ядра с защищенным режимом (будет делаться с нуля по техописанию 486 процессора). Хочется всё-таки запустить Doom и прочие подобные бенчмарки. Скорее всего в районе середины-конца августа будет готово в виде интерпретатора (т.е. процедурное), затем (уже в online- режиме) начнется мутация его в форму компилятора (т.е. в динамическое), под что оно будет проектироваться изначально. Соответственно до тех пор эмулятор останется реально-режимным, скорость текущего ядра особо подниматься не будет, новые устройства добавляться тоже. Буду только потихоньку исправлятся всяческие баги и недоделки в существующем функционале (чтобы все программы реального режима нормально работали). А также нарабатываться возможности для внешнего расширения и кое-какие мелочи, касающиеся подготовки к эмуляции отечественных x86-ПЭВМ. Апдейты никак комментироваться не будут, будет менятся только их дата на сайте ввеху (на днях будет очередной). Если надо - можно качать, если не надо - лучше не качать :) Гостевую отключил пока, чтобы не отвлекаться на её поддержку. Если какие вопросы почему-то возникнут - то можно пользовать или форум, или мыло. Скорее всего не реже раза в неделю буду заглядывать-отвечать. (Started development of new protected mode 486 kernel. First release presumably be ready in late August. So on-going releases will be mainly bugfixes in nearest future).



Текущее состояние эмуляции x86-платформы:

1) процессор I8086 - сэмулирован полностью, I80286 и I80386 - пока только реальный режим. Растактовка команд приближена к реальной. Сопроцессор тоже в основном сэмулирован (разве что некоторые исплючения по ошибкам еще не активизированы). Растактовка команд пока нереальная (забита константа).

2) БИОС виртуальный - т.е. обращения к нему перехватываются и исполняются в коде эмулятора, а не в эмулируемой машине - для простоты реализации. Пока он реализован/отлажен не полностью и некоторые функции не работают (или работают не совсем корректно) - врочем, в основном маловажные. На софт виртуальность БИОСа никакого влияния не оказывает - всё прозрачно.

3) видеопроцессор CGA - сэмулирован на уровне основных портов, пока есть некоторые недоделки в текстовых режимах (с мерцанием, например), в основном маловажные. EGA/VGA сэмулированы на уровне основных портов и основные графические режимы работают нормально. Не поддерживается пока несколько редко используемых графических режимов и расширенные текстовые (т.е. с размерами символов 8x14, 8x16) - вместо них используются текстовые режимы 8x8 (т.е. CGA-подобные).

4) звук - PC Speaker-ный (спикер), вроде в большинстве случаев работает нормально.

5) НГМД и НМД тоже эмулируются через БИОС, хотя для НГМД есть и железная эмуляция контроллеров - проверялась на биосе "Поиске-1", но она будет подключаться только для реальных биосов. Активны дисководы A и B, можно пользоваться образами дискет стандартных емкостей. В дисководы C: и D: можно вставлять образы жестких дисков. Образы понимаются только несжатые и без лишних заголовков пока (т.е. .ima, .img и т.п., всякие ddi и td0 пока не понимаются). Загрузочными пока могут быть только дискеты, загрузка системы с жестких дисков не понимается эмулятором. Записывать софт на диски можно через менеджер диска - он в основном поддерживает FAT12/FAT16 - через импорт/экспорт файлов. Если же нужна передача папок - то лучше использовать импорт архивов, которые затем распаковывать в эмуляторе (хотя поддержка папок будет введена со временем).

6) Встроенную виртуальную DOS делать пока не предполагается - поскольку есть нормальная бесплатная FreeDOS, которая хорошо себя чувствует в эмуляторе. Ну и любимая некогда оболочка - Volkov Commander - тоже живет. А образы всяких-разных загрузочных дисков можно в интернете много где найти.

7) Клавиатура XT-ная, через BIOS частично поддерживается работа с ней как с AT-шной.



Основные цели и задача программы - эмуляция советских ПЭВМ. Хотя пока их реализовано мало - собственно, только Корвет, ибо PC/XT пока реализован в неспециализированном варианте, т.е. не относится ни к одной из реальных советских моделей. Но это только начало - к тому же на подходе эмуляция Поиска-1 (собственно, она рабочая, я её делал параллельно с обобщенным PC/XT, просто пока в эмулятор не включил - сначала надо PC/XT нормально доделать).

Поскольку большинство советских персоналок в той или иной степени являлось клонами западных оригиналов, эталонные машины (типа PC/XT и тп.) также присутствуют (будут присутствовать) в эмуляторе. Приоритетом является эмуляция 16/32-битных систем, поскольку 8-битки (особенно бытовые) чаще всего слишком просты и имеют массу эмуляторов (хотя и их добавлю со временем). А из этих систем основной упор пока будет делаться на x86-платформу - поскольку там много с чем есть повозиться, было достаточно много советских моделей, да и вообще практически полезно - это основная рабочая платформа и в настоящее время. Ближайшая "эталонная" цель - реализовать полноценный эквивалент PC/AT 386+сопр.+ защищенный режим+VGA/SVGA - поскольку советская гражданская серия ПЭВМ ЕС закончилась вроде как на подобной модели. Из "реальных" моделей пока основная цель - бытовой ПК "Поиск-1" и профессиональная ПЭВМ EC1841 (по ним есть информация и БИОСы). Для остальных x86-моделей (ЕС18xx, Истра 4816, Искра 1030М, Ассистент и т.п.) всё это пока в розыске.

Основной упор при эмуляции "реальных" машин будет делаться на как можно более полную бинарную совместимость с их железными вариантами - чтобы были работоспособны оригинальные БИОСы и софт, написанный специально для данных машин (пользующийся их особенностями). Эмуляция машин-"эталонов" будет придерживаться тех же принципов, за исключением того, что они будут работать с виртуальным биосом (реализованным в коде программы) - для простоты и удобства отладки, внесения изменений и т.п. - но чтобы опять же работали системные тесты/утилиты, созданные для данных машин.



Oldkorvet.narod.ru - старый, добрый ПЭВМ

Made in xUSSR


Hosted by uCoz