Emu80 — 2013

Эмулятор Радио-86РК и других советских компьютеров на КР580ВМ80А http://www.emu80.org

Moderator: Pyk

Pyk
Maniac
Posts: 252
Joined: 21 Jan 2003 04:08

Emu80 — 2013

Post by Pyk »

Всем привет!

Я решил реанимировать, наконец, свой эмулятор. К сожалению, до добавления новых фич придется существенно переработать его внутреннюю структуру — там практически все ядро осталось еще с ДОС-версии ассемблерным. В общем, как всегда: задумок много, свободного времени мало, но потихоньку работаю. Сейчас очень нужно будет тестирование, поскольку переписывание ассемблерного кода чревато ошибками.

Собрана также linux-версия. В свое время я так и не отладил ее до конца, сейчас вроде бы версия практически рабочая, наблюдаются только некоторые проблемы со звуком. В общем, также требуется тестирование. С мультиплатформенностью будет чуть проще после планируемого перехода на SDL2 - там реализовали некоторые вещи, которых очень не хватало в SDL.

Исходники на github:
https://github.com/vpyk/emu80

Последние бинарные сборки для ознакомления и предварительного тестирования (linux-сборки требуют наличия библиотеки libsdl):

3.11 alpha:
Windows-версия: http://emu80.org/files/Emu80SDL313_win.zip
Linux-сборка (x86): http://emu80.org/files/Emu80SDL313_lnx.tgz

Что нового:

3.10 (08.04.2013):
- linux-версия
- немного исправлена цветовая палитра (не до конца)
- полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
- разные внутренние изменения

3.11 (01.05.2013):
- улучшена эмуляция таймера ВИ53
- внутренние изменения

3.13 (14.06.2013):
- улучшена эмуляция процессора (переход на новое ядро эмуляции 8080 Александра Демина)

По мере переработки кода буду выкладывать новые сборки для тестирования. С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
Last edited by Pyk on 14 Jun 2013 08:15, edited 7 times in total.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Emu80 — 2013

Post by Lavr »

Pyk wrote: - полностью переписана эмуляция звука (в т.ч. таймера ВИ53)
...
С удовольствием отвечу на вопросы, а также выслушаю замечания, пожелания на будущее и т. п.
Как ты таймер заэмулил? Подробности можно?
iLavr
Pyk
Maniac
Posts: 252
Joined: 21 Jan 2003 04:08

Post by Pyk »

Собственно, на данный момент все осталось практически в том же состоянии, как и было - эмулируются режимы 3 и 0 таймера (может быть, только чуть более полно), дискретность счета по прежнему 1/44100 с. Однако код полностью переписан, поэтому смогу без проблем улучшать при необходимости эмуляцию таймера.

Сейчас переписываю основной цикл эмулятора, после этого состояние счетчиков можно будет считывать в реальном времени.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Pyk wrote:Собственно, на данный момент все осталось практически в том же состоянии, как и было - эмулируются режимы 3 и 0 таймера (может быть, только чуть более полно), дискретность счета по прежнему 1/44100 с.
Все три канала оригинального ВИ53?
iLavr
Pyk
Maniac
Posts: 252
Joined: 21 Jan 2003 04:08

Post by Pyk »

Да, эмулируются все 3 канала в режимах 0 и 3. При этом подразумевается, что на входы GATE всех счетчиков всегда подается разрешающий счет уровень. На всех входах CLK подразумевается тактовая частота компьютера, только для РК-86 эмулируется подача на CLK2 сигнала с выхода OUT1. Режим BCD пока не поддерживается, но несложно добавить при необходимости. Всеми счетчиками можно пользоваться для отсчета времени (если устраивает грубая пока дискретизация), независимо от того, используется ли конкретный счетчик для генерации звука.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Pyk wrote:Всеми счетчиками можно пользоваться для отсчета времени (если устраивает грубая пока дискретизация),
независимо от того, используется ли конкретный счетчик для генерации звука.
А я себе немножко по другому написал таймер ВИ53.
Канал 0 - использует реальный канал 0 таймера IBM с пересчётом для часов.
Канал 1 - виртуальный, использует данные реального канал 0 таймера IBM.
Канал 2 - использует реальный канал 2 таймера IBM.
Ну и всякая обработка - чтобы было соответствие и учет соотношения 1,19318МГц -
в IBM и 2МГц - в "Специалисте_МХ".
В "Специалисте_МХ" на входы GATE всех счетчиков также всегда подается
разрешающий счет уровень.
Last edited by Lavr on 08 Apr 2013 14:08, edited 1 time in total.
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

А у меня пожелание всё тоже - сделать проект публично опенсорцным :)

Ибо мало кто из линуксоидов будет грузить линуксовый бинарь эмуля какой бы эмуль замечательный не был...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Pyk
Maniac
Posts: 252
Joined: 21 Jan 2003 04:08

Post by Pyk »

Согласен, некрасиво это :)
Совет нужен: где стоит разместить исходники?
Sourceforge, github, google code и т. д.?
Какие плюсы/минусы у этих вариантов?
У кого есть опыт их использования?
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Pyk wrote:Совет нужен: где стоит разместить исходники?
Sourceforge, github, google code и т. д.?
Какие плюсы/минусы у этих вариантов?
Кто-то из них так тормозииииит...
Вот мне кажется, где Шаос и Демин выкладывали свои исходники эмуляции i8080.
Он и тормозит... :(
iLavr
Pyk
Maniac
Posts: 252
Joined: 21 Jan 2003 04:08

Post by Pyk »

Будет на GitHub.
У Дёмина тоже там исходники, а почему он тормозит? Вроде бы не замечал... В чем тормоза проявляются?
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Pyk wrote:Будет на GitHub.
У Дёмина тоже там исходники, а почему он тормозит? Вроде бы не замечал... В чем тормоза проявляются?
GitHub - однозначно :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Pyk wrote:У Дёмина тоже там исходники, а почему он тормозит? Вроде бы не замечал... В чем тормоза проявляются?
Вот уж не знаю почему он тормозит... :(
При открытии замирает, как вкопанный... потом через паузу начинает разворачивать страницу.
Как будто "задумывается"... :wink:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Это знак тебе что пора прощаться с девятой оперой ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Это знак тебе что пора прощаться с девятой оперой ;)
Я постараюсь сам решить с кем из вас двоих мне пора прощаться, а с кем и - повременить...
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:Это знак тебе что пора прощаться с девятой оперой ;)
Я постараюсь сам решить с кем из вас двоих мне пора прощаться, а с кем и - повременить...
Да я как ба и не претендую - у меня пользовтелей по любому меньше ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net