Самописные dll для Proteus
Moderator: Shaos
Re: Самописные dll для Proteus
Сделал отладчик для модели mcs48, окно отладчика протеуса не использовал, сделал своё.
В mcs48.dll есть модель 8243, для использования надо указать {PRIMITIVE=DIGITAL,43}
Работает в демо версии протеуса.
Выкладываю только dll.
Работает только если прошивка находится внутри мк. Окно отладчика вызывается через меню Debug, когда нажата пауза. Можно ставить бряки на код и память двойным щелчком или правой кнопкой мыши. Отладчик немного недоделанный, но работать можно. Перемещение по коду колесом мыши и клавишами PgUp PgDn. Дизассемблирование идет на ходу, если какой-то участок кода не дизассемблировался, а надо посмотреть, то правой кнопкой мыши выбрать disasm. В mcs48.dll есть модель 8243, для использования надо указать {PRIMITIVE=DIGITAL,43}
Работает в демо версии протеуса.
Выкладываю только dll.
Re: Самописные dll для Proteus
обновил dll x80, i8257, i8275 и km48c64, с исходниками где возможно.
везде всякие мелкие баги.
везде всякие мелкие баги.
надо бы проверить текущее поведениеLavr wrote:Что-то у меня нехорошее и обоснованное подозрение - немаскируемое прерывание NMI обрабатывается
в модели неправильно.
Re: Самописные dll для Proteus
Проверка простая: NMI должно сработать на перепад на этом входе, но не должно далее срабатывать по уровню.PVV wrote:надо бы проверить текущее поведениеLavr wrote:Что-то у меня нехорошее и обоснованное подозрение - немаскируемое прерывание NMI обрабатывается
в модели неправильно.
По исходникам это должно быть хорошо видно, как NMI обрабатывается...
iLavr
Re: Самописные dll для Proteus
использовалась здесь:- Attachments
- x86_v3a_dll.zip
- (39.38 KiB) Downloaded 400 times
- x86_cpp.zip
- один файл, часть проекта с реализацией опкодов
- (14.97 KiB) Downloaded 372 times
Re: Самописные dll для Proteus
что то не могу разобраться. Скачал x80.dll установил в папку Models. Нахожу в базе и ставлю в проекте компонент 8080. А как поменять допустим на 8085? Правил текстовый файл в свойствах - ничего не меняется.
Re: Самописные dll для Proteus
x80.dll одна на все три ЦП, 8080,8085 и z80, но УГО должны быть на каждый ЦП свой. Соответственно нельзя взять УГО 8080 и в его свойствах поменять 8080 на 8085. dll при старте проверяет с каким УГО она работает в этом текстовом поле свойств и инициализирует ножки и все необходимое...
Проще всего взять готовый проект с 8085 и из него скопировать УГО в свой проект, либо на базе готового проекта делать свой. Иначе, нужно нарисовать свой УГО с именами ножек как на картинках выше, тк dll именно по именам ножек работает.
Проще всего взять готовый проект с 8085 и из него скопировать УГО в свой проект, либо на базе готового проекта делать свой. Иначе, нужно нарисовать свой УГО с именами ножек как на картинках выше, тк dll именно по именам ножек работает.
Re: Самописные dll для Proteus
Понял, спасибо. А случайно нет готового проекта на 8085? Здесь на форуме полазил - ничего не нашелPVV wrote: Проще всего взять готовый проект с 8085 и из него скопировать УГО в свой проект, либо на базе готового проекта делать свой. Иначе, нужно нарисовать свой УГО с именами ножек как на картинках выше, тк dll именно по именам ножек работает.
Re: Самописные dll для Proteus
они несколько запрятаны viewtopic.php?f=89&t=11716&start=30#p130249Shumadan wrote:А случайно нет готового проекта на 8085? Здесь на форуме полазил - ничего не нашел
и в теме по Специалисту еще есть, там к нему я 8085 прикручивал...
Re: Самописные dll для Proteus
отлично, спасибо
Re: Самописные dll для Proteus
Поскольку выложенный в этой ветке display.dll содержит ошибки, связанные с порчей памяти, и периодически падает, то переписал по своему. Были перепутаны SYNC_H и SYNC_V, сделал правильно, поэтому если использовать эту длл вместо старой то на схеме надо поменять выводы. Название поменял на tvdisplay.dll так как display.dll есть в системной папке винды и иногда она загружается вместо нужной и окно не появляется.
Также сделал опции чтобы можно было менять цвета и размеры без перекомпиляции:
Цвета указываются в формате RRGGBB.
У окна теперь можно менять размеры мышкой, но не более указанного.
Также сделал опции чтобы можно было менять цвета и размеры без перекомпиляции:
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}
У окна теперь можно менять размеры мышкой, но не более указанного.
- Attachments
- tvdisplay_src.zip
- (4.85 KiB) Downloaded 247 times
- tvdisplay_dll.zip
- (2.92 KiB) Downloaded 253 times
-
- Junior
- Posts: 1
- Joined: 10 Jan 2024 14:38
Re: Самописные dll для Proteus
а где найти УГО для x80.dll ? Не могу найти на форуме.
Re: Самописные dll для Proteus
Я решил попробовать эту dll в своих проектах в надежде повысить скорость эмуляции
в сложных схемах с К580ВМ80.
И для начала вставил её в довольно простой тестовый проект: УГО элемента нарисовал отечественное по справочнику Шахнова.
Кому не нравится, я оставил модель в углу первого проекта - её
при желании можно скомпилировать под себя, тогда она появится
в библиотеках Proteus.
8224.dll обеспечивает следующую диаграмму сигналов: От внешних сигналов модель не зависит, частота задающего
генератора выставляется в свойствах модели, поэтому, как мне
кажется, в скрипт свойств модели на этапе компиляции следует
добавить строку:
{FREQUENCY="Частота генератора:",ADVANCED FLOAT,POZ}
Значение параметра по умолчанию я не указал специально, в этом
случае модель сама пишет [Default]
В проект выше модель 8224.dll вписалась безболезненно.
Особого прироста скорости я, честно говоря, не заметил...
Есть ли ошибка в отработке сигнала READY - пока не проверил,
нет у меня подходящего проекта.
В более сложном проекте замена привычного нам генератора на мелкой
логике на генератор модели 8224.dll потребовала подгонки времянок
схемы, поскольку i8224 формирует тактовые сигналы С1 и С2 как OSC/9,
а мы привыкли обычно к OSC/4 в наших генераторах на рассыпухе.
В архиве ниже два проекта, скриншоты которых приведены в начале поста. Все необходимые dll - в папке с проектами.
iLavr
Re: Самописные dll для Proteus
Но вот что очевидно, но я забыл упомянуть: модель 8224.dll строб /STBLavr wrote:Есть ли ошибка в отработке сигнала READY - пока не проверил,
нет у меня подходящего проекта.
STATUS выставляет не так, как в оригинальном генераторе i8224:
И у нас на форуме звучало распространенное заблуждение, что строб /STB -
в фазе с С1, на самом деле строб /STB находится между спадом С2
и фронтом С1, чтобы попадать на SYNC срезом, нулевым уровнем и фронтом. Это упрощает захват слова STATUS...
Хотя я и не помню точно, как его К580ВК28(38) захватывает, но то, что модель
8224.dll выдаёт строб /STB несколько иначе, следует упомянуть здесь.
iLavr