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

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

Moderator: Shaos

Pavtik
Novelist
Posts: 25
Joined: 11 Nov 2015 16:34

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

Post by Pavtik »

Сделал отладчик для модели mcs48, окно отладчика протеуса не использовал, сделал своё.

48.PNG
48.PNG (78.25 KiB) Viewed 11640 times

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

В mcs48.dll есть модель 8243, для использования надо указать {PRIMITIVE=DIGITAL,43}
Работает в демо версии протеуса.
Выкладываю только dll.

mcs48.zip
(24.04 KiB) Downloaded 368 times

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

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

Post by PVV »

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

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

Post by Lavr »

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

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

Post by PVV »

x86.dll

x86.PNG
x86.PNG (67.61 KiB) Viewed 11495 times

использовалась здесь:
viewtopic.php?f=87&t=20236
viewtopic.php?f=93&t=18868&start=165
Attachments

x86_v3a_dll.zip
(39.38 KiB) Downloaded 394 times

x86_cpp.zip
один файл, часть проекта с реализацией опкодов
(14.97 KiB) Downloaded 365 times

Shumadan
Fanat
Posts: 67
Joined: 10 Mar 2018 19:50

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

Post by Shumadan »

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

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

Post by Shumadan »

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

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

Post by Shumadan »

отлично, спасибо
Pavtik
Novelist
Posts: 25
Joined: 11 Nov 2015 16: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.
У окна теперь можно менять размеры мышкой, но не более указанного.
Attachments

tvdisplay_src.zip
(4.85 KiB) Downloaded 240 times

tvdisplay_dll.zip
(2.92 KiB) Downloaded 247 times

Aleksandr1968
Junior
Posts: 1
Joined: 10 Jan 2024 14:38

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

Post by Aleksandr1968 »

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

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

Post by Lavr »

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

i8080_8224.PNG
i8080_8224.PNG (74.05 KiB) Viewed 814 times

УГО элемента нарисовал отечественное по справочнику Шахнова.
Кому не нравится, я оставил модель в углу первого проекта - её
при желании можно скомпилировать под себя, тогда она появится
в библиотеках Proteus.

8224.dll обеспечивает следующую диаграмму сигналов:

i8080_OSC1.PNG
i8080_OSC1.PNG (24.92 KiB) Viewed 814 times

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

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

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

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

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

В архиве ниже два проекта, скриншоты которых приведены в начале поста.

8224.zip
(332.54 KiB) Downloaded 35 times

Все необходимые dll - в папке с проектами.
iLavr
User avatar
Lavr
Supreme God
Posts: 16611
Joined: 21 Oct 2009 15: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
SYimage071.png (21.37 KiB) Viewed 759 times

Это упрощает захват слова STATUS...
Хотя я и не помню точно, как его К580ВК28(38) захватывает, но то, что модель
8224.dll выдаёт строб /STB несколько иначе, следует упомянуть здесь.
iLavr
Post Reply