От
Станислав Ломакин
→
Кому
All
19.01.2007
Hello, All
во многих эмулях практикуется такой подход к эмуляции ULA-видеоконтроллера:
после того, как процессор исполнит очередную команду, берется кол-во тактов,
затраченное на эту команду, и выполняется соответствующий обьем отрисовки ULA.
к примеру: некий PUSH занял 11 тактов, стало быть (в случае прямого хода луча)
ULA рисует 22 точки. и так далее.
HО -- ведь если у нас машина с раздельными полями памяти, ULA и Z80 обращаются
к данным одновременно, то есть может возникнуть ситуация, когда PUSH положил на
стек, находящийся в экранной памяти, старший байт слова, тем временем ULA
считала байт по предыдущему адресу, а затем PUSH положил и младший байт, но ULA
уже ускакала вперед, и на экран таким образом попал только старший байт слова,
которое клал на стек PUSH.
в упомянутом выше алгоритме эмуляции это не будет учтено, на экран попадут оба
байта, то есть, строго говоря, такая эмуляция некорректна.
прав ли я?
От
Dmitry Malychev
→
Кому
All
19.01.2007
Hello, Titus
Давно уже пора полноценно эмулировать не только проц "изнутри" да юлу, но и
шину (потактовое состояние). И всякие "девайсоплагины" будет проще
прикручивать. Правда, эмуль тормознутый получится... но это ничего, у винтела
дури хватает. ;)
От
Андрей Александрович Титов
→
Кому
All
19.01.2007
Hello, boo_boo
Да, ты прав, такая эмуляция не вполне корректна :v2_tong2:
От
Алексей Гончаров
→
Кому
All
19.01.2007
Hello, Lethargeek
Потактово это конечно хорошо, да и дури хватит(а при хорошей архитектуре эмуля
может и лучше будет), но вот инфы по интимным делам железа внутри команд надо
будет ещё поискать...
От
Владимир Кладов
→
Кому
All
19.01.2007
Hello, boo_boo
в каких это - многих? у меня в процессе выполнения команды HА КАЖДОМ ЦИКЛЕ
строится видеолуч, например. И я уверен, что так же делается во всех
эмуляторах, работающих с ULA (а не с рассыпухой). Иначе это уже не мультиколор,
а частичный мультиколор.
Инфы - море. Идите на worldofspectrum, там все лежит, и даже обновляется.
От
Станислав Ломакин
→
Кому
All
19.01.2007
Hello, Lethargeek
Let> Давно уже пора полноценно эмулировать не только проц "изнутри" да
Let> юлу, но и шину (потактовое состояние). И всякие "девайсоплагины"
Let> будет проще прикручивать. Правда, эмуль тормознутый получится... но
Let> это ничего, у винтела дури хватает. ;)
попробую, глянем, сколько там у винтела дури :rolleyes;
Nov>; Потактово это конечно хорошо, да и дури хватит(а при хорошей
Nov> архитектуре эмуля может и лучше будет), но вот инфы по интимным делам
Nov> железа внутри команд надо будет ещё поискать...
по каким "делам внутри команд"?
Vla> в каких это - многих? у меня в процессе выполнения команды HА КАЖДОМ
Vla> ЦИКЛЕ строится видеолуч, например. И я уверен, что так же делается во
Vla> всех эмуляторах, работающих с ULA (а не с рассыпухой). Иначе это уже
Vla> не мультиколор, а частичный мультиколор.
ну у тебя я не смотрел, сорцы-то закрыты :rolleyes;
в; zemu, в глюкалке с точностью до опкода ULA работает. в US все кошерно.
а у тебя как это реализовано? жестко на каждом такте дергается ULA, или как в
US -- после записи в видеопамять/порт?
От
Алексей Гончаров
→
Кому
All
19.01.2007
Hello, boo_boo
Интим - это например LDIR,условные переходы и вообще что-то более-менее
"сложное". Порядок изменения этоми инструкциями регистров разнится на клонах
Z80, да на разных по технологии изготовления Z80. Для точной эмуляции, нужно
было бы выбирать конкретный проц.
От
Андрей Александрович Титов
→
Кому
All
20.01.2007
Hello, NovaStorm
Nov> Интим - это например LDIR,условные переходы и вообще что-то
Nov> более-менее "сложное". Порядок изменения этоми инструкциями регистров
Nov> разнится на клонах Z80, да на разных по технологии изготовления Z80.
Бездоказательно, весьма бездоказательно... :v2_wink2:
От
Сергей Акимов
→
Кому
All
20.01.2007
Hello, Titus
Tit> Цитата:
Tit> Сообщение от NovaStorm
Tit> Интим - это например LDIR,условные переходы и вообще что-то
Tit> более-менее "сложное". Порядок изменения этоми инструкциями регистров
Tit> разнится на клонах Z80, да на разных по технологии изготовления Z80.
Tit>
Tit>
Tit> Бездоказательно, весьма бездоказательно...
Я тут гонял zexall на нескольких эмуляторах z80 - результат удручающий. А он
еще не самое полное тестирование проводит...
От
Станислав Ломакин
→
Кому
All
20.01.2007
Hello, NovaStorm
Nov> Интим - это например LDIR,условные переходы и вообще что-то
Nov> более-менее "сложное". Порядок изменения этоми инструкциями регистров
Nov> разнится на клонах Z80, да на разных по технологии изготовления Z80.
Nov> Для точной эмуляции, нужно было бы выбирать конкретный проц.
это только пресловутого MEMPTR касается, а с ним уже ясно все
(http://zx.pk.ru/showpost.php?p=44058&postcount=150). насчет разных технологий
и странных клонов ходят слухи, но конкретных экземпляров пока не выявлено.
если у тебя есть -- давай сюда :v2_smile;
Err>; Я тут гонял zexall на нескольких эмуляторах z80 - результат
Err> удручающий. А он еще не самое полное тестирование проводит...
конечно. но, к счастью с хардовым Z80 все куда приятней :) есть небольшая
разница (см ссылку выше) но в целом один хрен :) так что это скорей
показатель недоделанности некоторых эмуляторов