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 все куда приятней :) есть небольшая
разница (см ссылку выше) но в целом один хрен :) так что это скорей
показатель недоделанности некоторых эмуляторов




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - CD-ROM - устройство и хитрости подключения.
Gfx scene - "пиксель-сцена на спектруме пребывает в довольно плачевном состоянии"...
Информация - новости о движении против повременной оплаты телефона.
Этюды - Процедура печати чисел.
Анкета - Sinus/TGT tm.

В этот день...   29 марта