Proteus C++ DLL's

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

с этой dll у меня проект не заводится нормально: симуляцию не выполняет, вылетает с ошибкой на kernel32.dll, run(play) автоматом переходит на паузу и отрабатывает только один шаг.
Мой проект работает с z80.dll, а не x80.dll (все из архива Z80ALL.rar), соотв. пришлось править схему под другой УГО для проверок.
Проверил x80.dll(из архива Z80ALL.rar) с моим проектом, run(play) работает так же, как и с z80.dll, а вот симуляцию не выполняет, аналогично новой dll, вылетает с ошибкой на kernel32.dll.
proteus работает в WinXPsp2.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

А тест из x80.rar работает?
Какая модель проца в компе?
На другом компе есть возможность испытать?
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

Предыдущие эксперименты были на core i5.
Сейчас запустил все на другом компе(athlon64X2), частично заработало, а именно, run(play) работает, теперь есть реакция на флаг, jnz работает правильно после переполнения инкремента регистра, но симуляция в Graph mode-> Digital ведет себя точно так же:
Internal Exception: access violation in module 'KERNEL32.DLL' [00010424].
Проверил все на проектах из архива x80.rar все работает, до тех пор, пока не добавляю Graph mode-> Digital и не добавляю туда какую-нибудь цепь для симуляции, как только добавил - получаю эту ошибку при нажатии пробела...
Провел аналогичные эксперименты с тремя проектами из архива Z80ALL.rar, 8080_2.dsn и 8080_3.dsn - ведут себя полностью аналогично вышеописанному, а вот 8080_1.dsn - без проблем симулирует цепи Graph mode-> Digital. Посмотрел какие dll используют эти проекты, и вот - _1 - z80.dll, а _2 и _3 -x80.dll.
x80.dll в этих экспериментах менял из архивов в разных комбинациях...
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

PVV wrote:Посмотрел какие dll используют эти проекты, и вот - _1 - z80.dll, а _2 и _3 -x80.dll.
Значит, разница между ними вот какая:
z80.dll - это я компилировал исходники первоначального x80 в VC 5.0 для Win_98, поскольку исходный x80.dll не работал у меня под Win_98, как я писал тут ранее в этой ветке.
Я еще там что-то правил в исходниках, сейчас не вспомню уже.

x80.dll - это первоначальный вариант в архиве Z80ALL.rar - он нормально работал в Win_7, если приложить ему msvcr100d.dll .

Последний вариант x80.dll я еще не тестировал совсем, т.к. некогда немного мне. Дела поднавалились... :-?


2_PVV: А что за файл spec_ie10_6.pdsprj в архиве? Я, наверное, отстал от жизни со своим Протезусом 6.7 Про...
iLavr
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

Я с proteus_ом разбираюсь только с новогодних каникул.
файл spec_ie10_6.pdsprj - это файл проекта 8го proteus_a, внутри он обычный zip архив, его архиватор спокойно открывает... spec_ie10_6 - это модель спеца на ие10 счетчиках, вместо классической схемы на ие7...
работающий(run) проект простого специалиста(эта схема собрана у меня на реальном специалисте и работает):
spec_ie10_6.JPG
работающий(run) проект специалиста МХ2(в реале еще не собрал):
spec_ie10_14_mx2.JPG
Во вложении схема простого спеца, два z80, это как раз сегодняшние эксперименты, один из них исключен из симуляции.
Еще с z80(читаем 580ВМ80) в специалисте есть проблема - неправильная времянка чтения процом из RAM. Как я понял, в этой модели z80, считывание шины данных происходит по началу сигнала RD, а в реале только на втором-третьем такте цикла, в связи с чем, когда RAS и CAS выставят актуальный адрес для dram памяти проц уже шину данных вычитал, а там мусор :(... я этот момент обыграл второй мс памяти.
Повторюсь за работу новой x80.dll, не работает симуляция цепей в Graph mode-> Digital, я этим пользуюсь постоянно, и глюк с работой инкремента вычислил именно через анализ графиков цепей, очень бы хотелось, что б этот инструмент заработал.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

PVV wrote:Я с proteus_ом разбираюсь только с новогодних каникул.
Ну тогда Вы - просто молодЕц! :kruto:
И с proteus_ом разобрались, dll-ку сами написали!
PVV wrote:файл spec_ie10_6.pdsprj - это файл проекта 8го proteus_a, внутри он обычный zip архив, его архиватор спокойно открывает...
Вот это меня несколько и смутило... Я открывал Win_RAR-ом, и он прямо внутри архива в файл *.pdsprj заходит.
Думаю - что же это такое... :wink:



Если Вам это не будет трудно - сделайте топик про свой "Специалист" в нашем разделе Spetsialist?
И про display.dll там расскажите с исходниками, чтобы и другие смогли, если кто захочет.
Я-то сам решил дисплей "Специалиста" сделать, как LCD. :wink:

Image

Чтобы не морочить себе голову со счетчиками и регенерацией...
iLavr
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

PVV wrote: Graph mode-> Digital, .
А как перейти/включить этот режим и как им пользоваться ?
Ни разу не запускал.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

Я вижу по форуму, что большинство работает со старыми версиями proteus, я их интерфейс и как с ними работать не знаю. Вот в учебнике по proteus http://oproteus.narod.ru/ этот режим описывается (L10):
prot1.jpg
prot2.jpg
Вопрос по исходнику dll, это случайно не он - Z80-Proteus.zip?
You do not have the required permissions to view the files attached to this post.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

Как-то непрнятно Graph mode связано с окнами состояния и отладки.
Без окон все срабатывает -- будем изучать...
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

PVV wrote:Я вижу по форуму, что большинство работает со старыми версиями proteus
А это потому что в них уже все ошибки нашли... :lol: А в новых версиях Лабцентр новых ошибок подсыпает... :wink:
Лучше учитывать известные старые, чем натыкаться на непонятные новые...
iLavr
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

Подключение *.SDI. DLL собрана статически (не нужны внешние DLL).
Исправлены инкременты.
Graph mode работает.
You do not have the required permissions to view the files attached to this post.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

Все работает! Спасибо.
Как закончу с моделированием, выложу результаты в отдельной теме. Только это будет недели через 2-3.
PS: а насколько проблематично реализовать времянку чтения памяти как у оригинального CPU по тактам?
это у ВМ80:
cpu_rd_vm80.jpg
а это у Z80:
cpu_rd_z80.jpg
те, по факту выборка с шины данных происходит по завершению сигнала чтения...
You do not have the required permissions to view the files attached to this post.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

PVV wrote:PS: а насколько проблематично реализовать времянку чтения памяти как у оригинального CPU по тактам?
это у ВМ80:
В архиве в lib/idx есть модель i8080 -- но она пока не работает.
Со временем будет работать...
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

Вот-он наконец наш любимый 8080...
Может времянки не совсем точные...
You do not have the required permissions to view the files attached to this post.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Proteus C++ DLL's

Post by PVV »

Попробовал я эту модель i8080, долго не мог понять, что не так, моя модель специалиста не работает с этим процессором. После сравнения диаграм работы нашел:
так выглядит работа с ВМ80:
spec_BM80.JPG
а как с Z80:
spec_Z80.JPG
условия одинаковые, программа одна, запись по адресу 0х9420 - ВМ80 не формирует сигнал SYNC, соотв. не срабатывает арбитр(U18) доступа к памяти - CPU или VIDEO, и запись в память не проходит...
PS - еще у ВМ80 сигнал сброса инверсный по отношению к Z80, надо подправить для аутентичности модели с ВМ80...
You do not have the required permissions to view the files attached to this post.