Самописные dll для Proteus
Moderator: Shaos
Самописные dll для Proteus
В связи с тем, что на данный момент набралось достаточно много самописных dll моделей для Протеуса и возникают сложности с поиском их актуальных версий, возникло желание сделать тему, в которой хочется собрать все наработки, как свои, так и чужие. Так же, в этой теме будет приветствоваться описание найденных ошибок в той или иной dll. С появлением обновлений dll, я буду стараться актуализировать сообщения.
Во вложениях, рядом с dll, при наличии исходник, проект самого Протеуса с этим элементом, и этот проект в pdf формате, именно для того, что бы можно было нарисовать УГО(рисуной элемента на схеме) самостоятельно. Тк проекты новых версий Протеуса в старых версиях не открываются, то можно УГО элемента нарисовать в своей версии, и подключить к нему нужную dll, тк для dll версия Протеуса не важна. При рисовании УГО важно четко следить за именами ножек, тк они используются в dll. Если же проект Протеуса удается открыть, то УГО элемента можно просто скопировать в свою схему. Библиотеки, в которых можно сохранить УГО, я не выкладываю.
использование dll можно посмотреть:
viewtopic.php?f=89&t=11716
viewtopic.php?f=90&t=11446
viewtopic.php?f=93&t=16296
viewtopic.php?f=96&t=18820
viewtopic.php?f=35&t=16064
https://zx-pk.ru/threads/19180-partner- ... ost1010326
x80.dll - актуальная версия 13, (обновил 28.12.2021 до 13b5) поддерживаются три типа ЦП, i8080,i8085 и z80. Выбор типа ЦП производится в текстовом поле свойств схемного УГО. Точность эмуляции достаточно высокая, и на данный момент нет схем, в которых бы данная модель работала не корректно, все найденные ошибки устранены.
Есть лишь два ограничения. Для всех, трех, моделей не учитывается время распространения сигналов по отношению к тактовой частоте, те по перепаду CLK выходные ножки отрабатывают без задержки, мгновенно. Это в большинстве случаев не мешает симуляции, но при необходимости, можно добавить один\два не\инвертирующих логических элемента по входу CLK, для введения такой задержки. Второе ограничение относится только к i8080, модель использует только тактовый сигнал F1, сигнал F2 игнорируется. Соответственно, времянки выходных ножек, которые привязаны к F2 не соответствуют, тк они перепривязаны к F1. Это ограничение не помешало еще ни одной симуляции схем. Исходник не распространяется.
display.dll - версий было несколько, номер актуальной версии не известен. Монохромный вариант виртуального монитора. В ранних версиях при использовании был глюк с вылетом Протеуса без каких либо предупреждений. Есть исходник.
dispRGB.dll - актуальная версия ?. Цветной вариант виртуального монитора. Во всех последних проектах я использую именно эту dll, для не цветных симуляций просто соединяются вместе входы R,G,B,I. Работает очень стабильно. dll не моя, исходника нет.
displayRGB.dll - актуальная версия 1. Мой цветной вариант виртуального монитора, делался для VGA разрешения экрана. Есть исходник.
i8255.dll - актуальная версия 2, поддерживает режим только mode0. Работает более корректно аналогичной dll в самом Протеус. Есть исходник.
i8257.dll - актуальная версия 2, поддерживает режим только второго канала DMA. Сделана для использования в симуляции РК-86 и его клонов. Есть исходник.
(обновил 28.12.2021 до версии 3, сделана поддержка всех четырех каналов, нет только ротации приоритета)
i8275.dll - актуальная версия 2, поддерживает многие, но не все функции. Мигание курсора сделано существенно быстрее, для наглядности симуляции. Сделана для использования в симуляции РК-86 и его клонов. Есть исходник.
(обновил 28.12.2021 до версии 3, исправлена ошибка в паузе между запросами ДМА)
v9938.dll - актуальная версия 6, поддерживает только базовые функции. Сделана для использования в симуляции msx. Есть исходник.
RP5C01.dll - актуальная версия 1, поддерживает основные функции. Запоминания настроек нет, секунды инкрементируются существенно быстрее. Сделана для использования в симуляции msx. Есть исходник.
K555IR26.dll - актуальная версия 1, поддерживает все функции. Сделана для использования в симуляции msx. Есть исходник.
i8224.dll - актуальная версия ? Есть ошибка в отработке сигнала READY. dll не моя, исходника нет.
km48c64.dll - актуальная версия 1. Некая виртуальная DRAM, пока в отладке.
(обновил 28.12.2021)
x86.dll - актуальная версия 3a. Реализация i8088 и i8086. Единственное несоответствие, опкоды выполняются гораздо быстрее, чем у реальных ЦП, но для платформы x86 это, на мой взгляд, не важно, а для эмуляции даже удобнее, меньше ждать. Времянки шины же полностью соответствуют реалу.
Во вложениях, рядом с dll, при наличии исходник, проект самого Протеуса с этим элементом, и этот проект в pdf формате, именно для того, что бы можно было нарисовать УГО(рисуной элемента на схеме) самостоятельно. Тк проекты новых версий Протеуса в старых версиях не открываются, то можно УГО элемента нарисовать в своей версии, и подключить к нему нужную dll, тк для dll версия Протеуса не важна. При рисовании УГО важно четко следить за именами ножек, тк они используются в dll. Если же проект Протеуса удается открыть, то УГО элемента можно просто скопировать в свою схему. Библиотеки, в которых можно сохранить УГО, я не выкладываю.
использование dll можно посмотреть:
viewtopic.php?f=89&t=11716
viewtopic.php?f=90&t=11446
viewtopic.php?f=93&t=16296
viewtopic.php?f=96&t=18820
viewtopic.php?f=35&t=16064
https://zx-pk.ru/threads/19180-partner- ... ost1010326
x80.dll - актуальная версия 13, (обновил 28.12.2021 до 13b5) поддерживаются три типа ЦП, i8080,i8085 и z80. Выбор типа ЦП производится в текстовом поле свойств схемного УГО. Точность эмуляции достаточно высокая, и на данный момент нет схем, в которых бы данная модель работала не корректно, все найденные ошибки устранены.
Есть лишь два ограничения. Для всех, трех, моделей не учитывается время распространения сигналов по отношению к тактовой частоте, те по перепаду CLK выходные ножки отрабатывают без задержки, мгновенно. Это в большинстве случаев не мешает симуляции, но при необходимости, можно добавить один\два не\инвертирующих логических элемента по входу CLK, для введения такой задержки. Второе ограничение относится только к i8080, модель использует только тактовый сигнал F1, сигнал F2 игнорируется. Соответственно, времянки выходных ножек, которые привязаны к F2 не соответствуют, тк они перепривязаны к F1. Это ограничение не помешало еще ни одной симуляции схем. Исходник не распространяется.
display.dll - версий было несколько, номер актуальной версии не известен. Монохромный вариант виртуального монитора. В ранних версиях при использовании был глюк с вылетом Протеуса без каких либо предупреждений. Есть исходник.
dispRGB.dll - актуальная версия ?. Цветной вариант виртуального монитора. Во всех последних проектах я использую именно эту dll, для не цветных симуляций просто соединяются вместе входы R,G,B,I. Работает очень стабильно. dll не моя, исходника нет.
displayRGB.dll - актуальная версия 1. Мой цветной вариант виртуального монитора, делался для VGA разрешения экрана. Есть исходник.
i8255.dll - актуальная версия 2, поддерживает режим только mode0. Работает более корректно аналогичной dll в самом Протеус. Есть исходник.
i8257.dll - актуальная версия 2, поддерживает режим только второго канала DMA. Сделана для использования в симуляции РК-86 и его клонов. Есть исходник.
(обновил 28.12.2021 до версии 3, сделана поддержка всех четырех каналов, нет только ротации приоритета)
i8275.dll - актуальная версия 2, поддерживает многие, но не все функции. Мигание курсора сделано существенно быстрее, для наглядности симуляции. Сделана для использования в симуляции РК-86 и его клонов. Есть исходник.
(обновил 28.12.2021 до версии 3, исправлена ошибка в паузе между запросами ДМА)
v9938.dll - актуальная версия 6, поддерживает только базовые функции. Сделана для использования в симуляции msx. Есть исходник.
RP5C01.dll - актуальная версия 1, поддерживает основные функции. Запоминания настроек нет, секунды инкрементируются существенно быстрее. Сделана для использования в симуляции msx. Есть исходник.
K555IR26.dll - актуальная версия 1, поддерживает все функции. Сделана для использования в симуляции msx. Есть исходник.
i8224.dll - актуальная версия ? Есть ошибка в отработке сигнала READY. dll не моя, исходника нет.
km48c64.dll - актуальная версия 1. Некая виртуальная DRAM, пока в отладке.
(обновил 28.12.2021)
x86.dll - актуальная версия 3a. Реализация i8088 и i8086. Единственное несоответствие, опкоды выполняются гораздо быстрее, чем у реальных ЦП, но для платформы x86 это, на мой взгляд, не важно, а для эмуляции даже удобнее, меньше ждать. Времянки шины же полностью соответствуют реалу.
Last edited by PVV on 28 Dec 2021 09:03, edited 5 times in total.
Re: Самописные dll для Proteus
x80.dll
- Attachments
- x80_13b5.zip
- актуализация версии dll, 13b5, исправлена кучка мелких багов во всех трех типах ЦП
- (45.88 KiB) Downloaded 681 times
- x80_PROP.PNG (85.46 KiB) Viewed 28187 times
- x80_dll.zip
- (45.64 KiB) Downloaded 804 times
Last edited by PVV on 27 Dec 2021 21:01, edited 2 times in total.
Re: Самописные dll для Proteus
display.dll
- Attachments
- display.png (10.01 KiB) Viewed 28142 times
- display_cpp.zip
- (10.92 KiB) Downloaded 666 times
- display_dll.zip
- (24.26 KiB) Downloaded 709 times
Last edited by PVV on 03 Dec 2019 09:21, edited 2 times in total.
Re: Самописные dll для Proteus
dispRGB.dll
- Attachments
- dispRGB.png (6.58 KiB) Viewed 28142 times
- dispRGB_dll.zip
- (104.38 KiB) Downloaded 990 times
Last edited by PVV on 03 Dec 2019 09:21, edited 1 time in total.
Re: Самописные dll для Proteus
displayRGB.dll
- Attachments
- displayRGB.png (5.59 KiB) Viewed 28142 times
- displayRGB.zip
- (111.77 KiB) Downloaded 698 times
- displayRGB_dll.zip
- (24.86 KiB) Downloaded 709 times
Last edited by PVV on 03 Dec 2019 09:21, edited 1 time in total.
Re: Самописные dll для Proteus
i8255.dll
- Attachments
- i8255.png (33.02 KiB) Viewed 28142 times
- i8255_src_v2.zip
- (12.95 KiB) Downloaded 660 times
- i8255_dll.zip
- (24.93 KiB) Downloaded 708 times
Last edited by PVV on 03 Dec 2019 09:22, edited 1 time in total.
Re: Самописные dll для Proteus
i8257.dll
- Attachments
- i8257_cpp_dll_v3.zip
- актуальная dll, v3, и исходники
- (32.54 KiB) Downloaded 368 times
- i8257.png (42.11 KiB) Viewed 28142 times
- i8257_dll.zip
- (25.13 KiB) Downloaded 635 times
Last edited by PVV on 27 Dec 2021 21:05, edited 2 times in total.
Re: Самописные dll для Proteus
i8275.dll
- Attachments
- i8275_cpp_dll_v3.zip
- актуальная версия dll, v3, и исходники
- (38.17 KiB) Downloaded 388 times
- i8275й.png (29.02 KiB) Viewed 28142 times
- i8275_dll.zip
- (25.83 KiB) Downloaded 639 times
Last edited by PVV on 27 Dec 2021 21:07, edited 2 times in total.
Re: Самописные dll для Proteus
v9938.dll
- Attachments
- v9938.png (34.95 KiB) Viewed 28142 times
- v9938.zip
- (282.01 KiB) Downloaded 603 times
- v9938v6_dll.zip
- (27.01 KiB) Downloaded 612 times
Last edited by PVV on 03 Dec 2019 09:25, edited 2 times in total.
Re: Самописные dll для Proteus
RP5C01.dll
- Attachments
- RP5C01.png (18.25 KiB) Viewed 28142 times
- RP5C01A_cpp.zip
- (1.96 KiB) Downloaded 592 times
- RP5C01A_dll.zip
- (24.16 KiB) Downloaded 635 times
Last edited by PVV on 03 Dec 2019 09:25, edited 1 time in total.
Re: Самописные dll для Proteus
K555IR26.dll
- Attachments
- 555IR26.png (13.42 KiB) Viewed 28142 times
- K555IR26_dll.zip
- (23.96 KiB) Downloaded 631 times
Last edited by PVV on 03 Dec 2019 09:25, edited 1 time in total.
Re: Самописные dll для Proteus
i8224.dll
- Attachments
- i8224.png (13.93 KiB) Viewed 28142 times
- i8224_dll.zip
- (4.51 KiB) Downloaded 605 times
Last edited by PVV on 03 Dec 2019 09:26, edited 2 times in total.
Re: Самописные dll для Proteus
km48c64.dll
- Attachments
- km48c64_v1.zip
- актуальная версия dll, v1
- (159.16 KiB) Downloaded 381 times
- 48c64.PNG (9.7 KiB) Viewed 28110 times
Last edited by PVV on 27 Dec 2021 21:12, edited 1 time in total.
Re: Самописные dll для Proteus
Что-то у меня нехорошее и обоснованное подозрение - немаскируемое прерывание NMI обрабатываетсяPVV wrote:x80.dll - актуальная версия 13, поддерживаются три типа ЦП, i8080,i8085 и z80. Точность эмуляции достаточно высокая, и на данный момент нет схем, в которых бы данная модель работала не корректно, все найденные ошибки устранены.
в модели неправильно.
NMI должно сработать один раз по перепаду "1"->"0" (по срезу) и, перейдя на адрес 0066H, на уровень лог."0"
на входе NMI модель реагировать больше не должна!
А получается, что в подпрограмме обработки NMI модель отрабатывает его по уровню лог."0" на входе NMI снова и снова.
С конкретным проектом - посмотрите этот: viewtopic.php?p=160961#p160961.
Если нажать NMI - вся память заполняется адресом возврата 0066H.
iLavr
mcs48 для Proteus
Уже весьма давно наш коллега Pavtik написал модель для Proteus микроконтроллеров семейства mcs48.
Спасибо ему за это!
Правда, проект был под старшие версии программы Proteus, и я им в то время не воспользовался...
Но неожиданно семейство mcs48 меня самого заинтересовало, поэтому я немного причесал графические
модели от Pavtik-а и добавил к ним библиотечные файлы, чтобы модели появились в меню компонент Proteus.
Ну и мне первым делом очень хотелось запустить "HELO" на СВЧ-печке "Электроника" от Tronix-а.
Ему - тоже спасибо за образец "HELO" и за ассемблер asm48 - он есть в архиве, выложенном ниже. ..........................
В архиве, что выложен ниже, все файлы разложены по папкам, куда их следует разложить там,
где у вас лежит папка \Labcenter Electronics. (У меня - здесь: C:\Program Files\Labcenter Electronics)
Спасибо ему за это!
Правда, проект был под старшие версии программы Proteus, и я им в то время не воспользовался...
Но неожиданно семейство mcs48 меня самого заинтересовало, поэтому я немного причесал графические
модели от Pavtik-а и добавил к ним библиотечные файлы, чтобы модели появились в меню компонент Proteus.
Ну и мне первым делом очень хотелось запустить "HELO" на СВЧ-печке "Электроника" от Tronix-а.
Ему - тоже спасибо за образец "HELO" и за ассемблер asm48 - он есть в архиве, выложенном ниже. ..........................
В архиве, что выложен ниже, все файлы разложены по папкам, куда их следует разложить там,
где у вас лежит папка \Labcenter Electronics. (У меня - здесь: C:\Program Files\Labcenter Electronics)
iLavr