Самописные dll для Proteus

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

Moderator: Shaos

Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: Самописные dll для Proteus

Post by Pavtik »

Сделал отладчик для модели mcs48, окно отладчика протеуса не использовал, сделал своё.
48.PNG
Работает только если прошивка находится внутри мк. Окно отладчика вызывается через меню Debug, когда нажата пауза. Можно ставить бряки на код и память двойным щелчком или правой кнопкой мыши. Отладчик немного недоделанный, но работать можно. Перемещение по коду колесом мыши и клавишами PgUp PgDn. Дизассемблирование идет на ходу, если какой-то участок кода не дизассемблировался, а надо посмотреть, то правой кнопкой мыши выбрать disasm.

В mcs48.dll есть модель 8243, для использования надо указать {PRIMITIVE=DIGITAL,43}
Работает в демо версии протеуса.
Выкладываю только dll.
mcs48.zip
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: Самописные dll для Proteus

Post by PVV »

обновил dll x80, i8257, i8275 и km48c64, с исходниками где возможно.
везде всякие мелкие баги.
Lavr wrote:Что-то у меня нехорошее и обоснованное подозрение - немаскируемое прерывание NMI обрабатывается
в модели неправильно.
надо бы проверить текущее поведение
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Самописные dll для Proteus

Post by Lavr »

PVV wrote:
Lavr wrote:Что-то у меня нехорошее и обоснованное подозрение - немаскируемое прерывание NMI обрабатывается
в модели неправильно.
надо бы проверить текущее поведение
Проверка простая: NMI должно сработать на перепад на этом входе, но не должно далее срабатывать по уровню.
По исходникам это должно быть хорошо видно, как NMI обрабатывается...
iLavr
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Самописные dll для Proteus

Post by PVV »

x86.dll
x86.PNG
использовалась здесь:
viewtopic.php?f=87&t=20236
viewtopic.php?f=93&t=18868&start=165
You do not have the required permissions to view the files attached to this post.
Shumadan
Fanat
Posts: 67
Joined: 10 Mar 2018 12:50

Re: Самописные dll для Proteus

Post by Shumadan »

что то не могу разобраться. Скачал x80.dll установил в папку Models. Нахожу в базе и ставлю в проекте компонент 8080. А как поменять допустим на 8085? Правил текстовый файл в свойствах - ничего не меняется.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Самописные dll для Proteus

Post by PVV »

x80.dll одна на все три ЦП, 8080,8085 и z80, но УГО должны быть на каждый ЦП свой. Соответственно нельзя взять УГО 8080 и в его свойствах поменять 8080 на 8085. dll при старте проверяет с каким УГО она работает в этом текстовом поле свойств и инициализирует ножки и все необходимое...
Проще всего взять готовый проект с 8085 и из него скопировать УГО в свой проект, либо на базе готового проекта делать свой. Иначе, нужно нарисовать свой УГО с именами ножек как на картинках выше, тк dll именно по именам ножек работает.
Shumadan
Fanat
Posts: 67
Joined: 10 Mar 2018 12:50

Re: Самописные dll для Proteus

Post by Shumadan »

PVV wrote: Проще всего взять готовый проект с 8085 и из него скопировать УГО в свой проект, либо на базе готового проекта делать свой. Иначе, нужно нарисовать свой УГО с именами ножек как на картинках выше, тк dll именно по именам ножек работает.
Понял, спасибо. А случайно нет готового проекта на 8085? Здесь на форуме полазил - ничего не нашел
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: Самописные dll для Proteus

Post by PVV »

Shumadan wrote:А случайно нет готового проекта на 8085? Здесь на форуме полазил - ничего не нашел
они несколько запрятаны :) viewtopic.php?f=89&t=11716&start=30#p130249
и в теме по Специалисту еще есть, там к нему я 8085 прикручивал...
Shumadan
Fanat
Posts: 67
Joined: 10 Mar 2018 12:50

Re: Самописные dll для Proteus

Post by Shumadan »

отлично, спасибо
Pavtik
Novelist
Posts: 26
Joined: 11 Nov 2015 09:34

Re: Самописные dll для Proteus

Post by Pavtik »

Поскольку выложенный в этой ветке display.dll содержит ошибки, связанные с порчей памяти, и периодически падает, то переписал по своему. Были перепутаны SYNC_H и SYNC_V, сделал правильно, поэтому если использовать эту длл вместо старой то на схеме надо поменять выводы. Название поменял на tvdisplay.dll так как display.dll есть в системной папке винды и иногда она загружается вместо нужной и окно не появляется.

Также сделал опции чтобы можно было менять цвета и размеры без перекомпиляции:

Code: Select all

{PRIMITIVE=DIGITAL}
{MODDLL=tvdisplay.dll}
{COLOR_BK =      000000}
{COLOR_LOW =     000000}
{COLOR_FLOAT =   999999}
{COLOR_HIGH =    FFFFFF}
{COLOR_REFRESH = 555555}
{SIZE_X = 385}
{SIZE_Y = 288}
{PACKAGE=NULL}
Цвета указываются в формате RRGGBB.
У окна теперь можно менять размеры мышкой, но не более указанного.
You do not have the required permissions to view the files attached to this post.
Aleksandr1968
Junior
Posts: 1
Joined: 10 Jan 2024 07:38

Re: Самописные dll для Proteus

Post by Aleksandr1968 »

а где найти УГО для x80.dll ? Не могу найти на форуме.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Самописные dll для Proteus

Post by Lavr »

PVV wrote:i8224.dll
Image
i8224.dll - актуальная версия ? Есть ошибка в отработке сигнала READY. dll не моя, исходника нет.
Я решил попробовать эту dll в своих проектах в надежде повысить скорость эмуляции
в сложных схемах с К580ВМ80.
И для начала вставил её в довольно простой тестовый проект:
i8080_8224.PNG
УГО элемента нарисовал отечественное по справочнику Шахнова.
Кому не нравится, я оставил модель в углу первого проекта - её
при желании можно скомпилировать под себя, тогда она появится
в библиотеках Proteus.

8224.dll обеспечивает следующую диаграмму сигналов:
i8080_OSC1.PNG
От внешних сигналов модель не зависит, частота задающего
генератора выставляется в свойствах модели, поэтому, как мне
кажется, в скрипт свойств модели на этапе компиляции следует
добавить строку:
{FREQUENCY="Частота генератора:",ADVANCED FLOAT,POZ}

Значение параметра по умолчанию я не указал специально, в этом
случае модель сама пишет [Default] :wink:

В проект выше модель 8224.dll вписалась безболезненно.
Особого прироста скорости я, честно говоря, не заметил... :-?

Есть ли ошибка в отработке сигнала READY - пока не проверил,
нет у меня подходящего проекта.

В более сложном проекте замена привычного нам генератора на мелкой
логике на генератор модели 8224.dll потребовала подгонки времянок
схемы, поскольку i8224 формирует тактовые сигналы С1 и С2 как OSC/9,
а мы привыкли обычно к OSC/4 в наших генераторах на рассыпухе.

В архиве ниже два проекта, скриншоты которых приведены в начале поста.
8224.zip
Все необходимые dll - в папке с проектами.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Самописные dll для Proteus

Post by Lavr »

Lavr wrote:Есть ли ошибка в отработке сигнала READY - пока не проверил,
нет у меня подходящего проекта.
Но вот что очевидно, но я забыл упомянуть: модель 8224.dll строб /STB
STATUS выставляет не так, как в оригинальном генераторе i8224:

Image

И у нас на форуме звучало распространенное заблуждение, что строб /STB -
в фазе с С1, на самом деле строб /STB находится между спадом С2
и фронтом С1, чтобы попадать на SYNC срезом, нулевым уровнем и фронтом.
SYimage071.png
Это упрощает захват слова STATUS...
Хотя я и не помню точно, как его К580ВК28(38) захватывает, но то, что модель
8224.dll выдаёт строб /STB несколько иначе, следует упомянуть здесь.
You do not have the required permissions to view the files attached to this post.
iLavr