Улучшения качества эмуляции, различные тесты и их результаты

Все об эмуляции ПК-01 "Львов" на современных платформах
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by liberation »

b2m wrote:Цель была несколько иная - если прога работает на реале, то она должна работать и в эмуляторе. Обратного я не гарантировал.
Логично. :)

Расскажите, пожалуйста, как в "Башкрии" появилась эмуляция ПК-01? Если с ПК-02 все выглядит понятно (реконструкция по докам), то с ПК-01 не все так однозначно. Верно я понимаю, что оригинала у Вас не было?

p.s.
И на закуску. Почему же все-таки "Башкирия" так шипит и щелкает при эмуляции ПК-01? И звук иногда дублируется... На оригинале такого не было.
Carthago delenda est, Carthaginem delendam esse
b2m
Posts: 115
Joined: 29 Mar 2012, 21:35
Contact:

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by b2m »

liberation wrote:Расскажите, пожалуйста, как в "Башкрии" появилась эмуляция ПК-01? Если с ПК-02 все выглядит понятно (реконструкция по докам), то с ПК-01 не все так однозначно. Верно я понимаю, что оригинала у Вас не было?
Верно, оригинала никогда не было. Более того, о существовании такого компа, как Львов, я узнал из интернета, по-моему на сайте Пыхонина (которому надо сказать спасибо, ибо без его сайта возможно и моего бы эмулятора не было, т.к. свой эмуль, тогда ещё только Башкирии-2м, я начал писать после того, как увидел его эмулятор). Эмуляцию Львова я решил добавить, когда появился эмулятор, конфигурируемый через файлы-конфиги. Процессор, порты ввода-вывода, клавиатура уже были. Для добавления нового компа в эмулятор, как правило, достаточно было написать эмуляцию видео-вывода. У Львова она тривиальна (если не считать "заковыристую" логику палитр). Поэтому Львов был одним из первых (самым первым был, конечно, Специалист). Так что ПК-01 я делал также только по докам, даже без схемы.
liberation wrote:И на закуску. Почему же все-таки "Башкирия" так шипит и щелкает при эмуляции ПК-01? И звук иногда дублируется... На оригинале такого не было.
Не знаю, у меня вроде нормально.
kapitan
Posts: 22
Joined: 01 Sep 2014, 08:19

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by kapitan »

OK

Любая операция IN или OUT в порты 0 - 191 будет подвешивать компьютер, из за снятия сигнала READY на CPU.
В руководстве по Бэйсику для команды OUT указано, что разрешенные порты 192 - 255.
Плохо, что:
- не пояснили причин
- не сделали проверки и защиты от подвисания.

Причина кроется в следующем:
Арбитр доступа к видео ОЗУ построен на микросхемах D1.1 D1.2 D5.2 D4
Он Реагирует на доступ по адресам A14 = A15 = 1 но неразличает доступ к ОЗУ или портам!
CPU на командах IN и OUT дублирует A0-A7 на A8-A15

Почему так сделано? Х.З.
Доработать можно включением пары вентилей в цепь сигнала D5.2-12
Но думаю такой цели нет. Надо просто знать и правильно эмулировать.

PS сканировать порты ненадо!
во Львове нет ничего кроме двух ВВ55 по адресам
С0-С3 и D0-D3
+ при эмуляции надо учесть, что A2 игнорируется !
т.е. С0-С3 эквивалентно С4-С7
и D0-D3 эквивалентно D4-D7

+ есть безадресный порт на запись
триггер D5.1

устанавливается при сбросе
и сбрасывается при первой записи в любой порт

это схема начального старта
процессор ВМ80 стартует с нулевого адреса, соответственно выбор ПЗУ на старте не такой как в нормальном состоянии.
триггер блокирует участие в выборе А14 и А15.
т.е. код из ПЗУ которое в нормальном состоянии C000 времменно сидит на 0000
первые команды должны быть типа

jmp C003
out A,(xx)

но совсем необязательно переключать сразу

для коректной эмуляции надо продолжать мапить адреса по другому пока не пройдет первая команда out
----------
2 дополнения:
- на схеме Львова ОПЕЧАТКА D28-3 подключен не на А3, а на А5 !!!
- D28 выбирается так же как и D9 схемой начального сброса,
т.е. после сброса до прохождения первой команды OUT дешифрация адреса для портов неработает. Думаю на практике это ничего незначит.
Первая команда типа OUT C3,xx достигнет своей цели, просто сигнал CS
будет немного задержан.
-----------
ответы на вопросы:
> что происходит на реале, когда мы обращаемся к портам
> 0xE0 - 0xFF? В эмуляторах они есть зеркалятся на порты 0xC0 - 0xDF.
> Насколько верно такое поведение?

отвер на вопрос: неверно.
там есть 4 линии выбора портов на D28
С0-С7
D0-D7
E0-E7
F0-F7

первые 2 заведены на ВВ 55 и поскольку А3 игнорируется, то
С0-С3 = С4-С7
D0-D3 = D4-D7

все 4 линии выведены на коннектор ВНЕШ1
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by MARAT_BEST »

начало вот тут http://lvovpc.ho.ua/forum/viewtopic.php ... 4&start=15
liberation wrote:
MARAT_BEST wrote:я все же думаю в моем пк львове с динамиком проблема, попробую всетаки его подключить отдельно
для тестов я всегда готов !
На слух - всё в порядке с динамиком.

Марат, могли бы Вы, плиз, записать аутентичный звук бипера при использовании традиционной процедуры звукогенерации. Для примера можно взять игру Странник, где в меню пиликает и бибикает, или Арктику.

А результаты, пожалуйста, выложите в тему про эмуляцию.
взял Арктику

звучит тихо
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by liberation »

MARAT_BEST wrote:взял Арктику
звучит тихо
Thx! Звучит как раз как надо. Так и звучало. Ностальжи!
Carthago delenda est, Carthaginem delendam esse
NeoSpectruman
Posts: 145
Joined: 21 Aug 2012, 22:30

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by NeoSpectruman »

kapitan wrote: Арбитр доступа к видео ОЗУ построен на микросхемах D1.1 D1.2 D5.2 D4
а можете в подобном виде перечислить функциональные блоки львова
для тех у кого с этим туго

видел разукрашенную по блоками и расписанную схему zx81
и рассматривать её было намного понятней...
kapitan wrote:а схеме Львова ОПЕЧАТКА
да и нужна тогда исправленая схема
хотя бы отфотошопить то что у нас есть отсканено (тк как никто не будет её заново отрисовывать)

нужно завести тему с перечислением известных очепяток
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by liberation »

MARAT_BEST wrote:начало вот тут http://lvovpc.ho.ua/forum/viewtopic.php ... 4&start=15
Марат, у меня к Вам просьба запустить на реале еще парочку программ. Речь о рекомпиляциях с MSX-1 таких как "Bomberman" и "Indian No Bouken". В эмуляторе иногда возникает ощущение, что им тяжеловато шевелиться на ПК-01. Давайте сопоставим с оригиналом, плиз.
Carthago delenda est, Carthaginem delendam esse
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by MARAT_BEST »

liberation wrote:
MARAT_BEST wrote:начало вот тут http://lvovpc.ho.ua/forum/viewtopic.php ... 4&start=15
Марат, у меня к Вам просьба запустить на реале еще парочку программ. Речь о рекомпиляциях с MSX-1 таких как "Bomberman" и "Indian No Bouken". В эмуляторе иногда возникает ощущение, что им тяжеловато шевелиться на ПК-01. Давайте сопоставим с оригиналом, плиз.
Пожалуйста !

Ну скажем так медленовато на мой взгляд, но играбельно.
Видео не очень качеством :roll: .

стук клавиш ... ностальгия

User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by liberation »

MARAT_BEST wrote:Пожалуйста !

Ну скажем так медленовато на мой взгляд, но играбельно.
Спасибо! Да, тяжеловато. Похоже, что при рекомпиляции слишком много z80-специфичного кода приходится менять. Иначе объяснить "тяжесть" Bomberman затруднительно, все-таки там мизер движущийся объектов.
Carthago delenda est, Carthaginem delendam esse
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Улучшения качества эмуляции, различные тесты и их резуль

Post by Zelya »

liberation wrote:
MARAT_BEST wrote:Пожалуйста !

Ну скажем так медленовато на мой взгляд, но играбельно.
Спасибо! Да, тяжеловато. Похоже, что при рекомпиляции слишком много z80-специфичного кода приходится менять. Иначе объяснить "тяжесть" Bomberman затруднительно, все-таки там мизер движущийся объектов.
Основная разница в том, что MSX работает как бы в текстовом режиме с программированием символов. И адаптация этого процесса под "честную" графику ПК-01, явно не оптимальна.
NeoSpectruman
Posts: 145
Joined: 21 Aug 2012, 22:30

Re: Улучшения качества эмуляции, различные тесты и их результаты

Post by NeoSpectruman »

тк представители лгбт сообщества в лице алехридера снова меня турнули с зхпкру
то отвечу ivagor-у тут
В такты перевел, но мне кажется что их нельзя использовать точно в таком виде в любых условиях, скорее всего конкретная растактовка будет зависеть и от последнего цикла предыдущей команды.
но во первых ты doing it wrong полностью и целиком
и таким тестом ничего толком не определишь
да и сильно ты округлил не к месту

а во вторых цифры тоже интересные
Image

мы видим сколько команд влезет в круглое число тактов

но тут мы вспоминаем про мерзкий ГФ24 с его никому ненужным делением на 9
который как всегда все нам портит

Code: Select all

2nop = 13t
123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx------	chars reading
x                                   x                                   x                                   x				cpu can read
111111111---------------------------111111111---------------------------wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu


ld a,a ~ 7t
123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234	20MHz
1---------------2---------------3---------------4---------------1---------------2---------------3---------------4---------------1---	1,25MHz chars
1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---2---3---4---5---6---7---8---1---	5MHz pixels
------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx--------------xx------	chars reading
x                                   x                                   x                                   x				cpu can read
111111111------------------------------------wwwwwwwwwwwwwwwwwwwwwwwwwww111111111------------------------------------wwwwwwwwwwwwwwww
1--------2--------3--------4--------5--------6--------7--------8--------9--------10-------11-------12-------13-------1--------2------	2,2MHz Cpu
не нужны принимать за чистую правду
ибо я не все раздуплил на схеме
и не понел полностью и точно

но все ras cas-ы тактируются от кварца деленного на 2\4\8
когда проц на свой волне с частотой кварца деленной на 9

тоесть эмулятор должен плясать не от частоты проца
а от частоты проца*4 *8
нужно жестко втыкать в времянки...

ну и вангую что эффективная частота проца дето в районе 1666666,6 из 2222222.2
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests