ZXNet эхоконференция «zxnet.pc»
тема: насчет эмуляции ULA
от: Станислав Ломакин
кому: All
дата: 19 Jan 2007
Hello, All
во многих эмулях практикуется такой подход к эмуляции ULA-видеоконтроллера:
после того, как процессор исполнит очередную команду, берется кол-во тактов,
затраченное на эту команду, и выполняется соответствующий обьем отрисовки ULA.
к примеру: некий PUSH занял 11 тактов, стало быть (в случае прямого хода луча)
ULA рисует 22 точки. и так далее.
HО -- ведь если у нас машина с раздельными полями памяти, ULA и Z80 обращаются
к данным одновременно, то есть может возникнуть ситуация, когда PUSH положил на
стек, находящийся в экранной памяти, старший байт слова, тем временем ULA
считала байт по предыдущему адресу, а затем PUSH положил и младший байт, но ULA
уже ускакала вперед, и на экран таким образом попал только старший байт слова,
которое клал на стек PUSH.
в упомянутом выше алгоритме эмуляции это не будет учтено, на экран попадут оба
байта, то есть, строго говоря, такая эмуляция некорректна.
прав ли я?
от: Dmitry Malychev
кому: All
дата: 19 Jan 2007
Hello, Titus
Давно уже пора полноценно эмулировать не только проц "изнутри" да юлу, но и
шину (потактовое состояние). И всякие "девайсоплагины" будет проще
прикручивать. Правда, эмуль тормознутый получится... но это ничего, у винтела
дури хватает. ;)
от: Андрей Александрович Титов
кому: All
дата: 19 Jan 2007
Hello, boo_boo
Да, ты прав, такая эмуляция не вполне корректна :v2_tong2:
от: Алексей Гончаров
кому: All
дата: 19 Jan 2007
Hello, Lethargeek
Потактово это конечно хорошо, да и дури хватит(а при хорошей архитектуре эмуля
может и лучше будет), но вот инфы по интимным делам железа внутри команд надо
будет ещё поискать...
от: Владимир Кладов
кому: All
дата: 19 Jan 2007
Hello, boo_boo
в каких это - многих? у меня в процессе выполнения команды HА КАЖДОМ ЦИКЛЕ
строится видеолуч, например. И я уверен, что так же делается во всех
эмуляторах, работающих с ULA (а не с рассыпухой). Иначе это уже не мультиколор,
а частичный мультиколор.
Инфы - море. Идите на worldofspectrum, там все лежит, и даже обновляется.
от: Станислав Ломакин
кому: All
дата: 19 Jan 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 Jan 2007
Hello, boo_boo
Интим - это например LDIR,условные переходы и вообще что-то более-менее
"сложное". Порядок изменения этоми инструкциями регистров разнится на клонах
Z80, да на разных по технологии изготовления Z80. Для точной эмуляции, нужно
было бы выбирать конкретный проц.
от: Андрей Александрович Титов
кому: All
дата: 20 Jan 2007
Hello, NovaStorm
Nov> Интим - это например LDIR,условные переходы и вообще что-то
Nov> более-менее "сложное". Порядок изменения этоми инструкциями регистров
Nov> разнится на клонах Z80, да на разных по технологии изготовления Z80.
Бездоказательно, весьма бездоказательно... :v2_wink2:
от: Сергей Акимов
кому: All
дата: 20 Jan 2007
Hello, Titus
Tit> Цитата:
Tit> Сообщение от NovaStorm
Tit> Интим - это например LDIR,условные переходы и вообще что-то
Tit> более-менее "сложное". Порядок изменения этоми инструкциями регистров
Tit> разнится на клонах Z80, да на разных по технологии изготовления Z80.
Tit>
Tit>
Tit> Бездоказательно, весьма бездоказательно...
Я тут гонял zexall на нескольких эмуляторах z80 - результат удручающий. А он
еще не самое полное тестирование проводит...
от: Станислав Ломакин
кому: All
дата: 20 Jan 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 все куда приятней :) есть небольшая
разница (см ссылку выше) но в целом один хрен :) так что это скорей
показатель недоделанности некоторых эмуляторов
|