Proteus C++ DLL's

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

Moderator: Shaos

mavrus
Junior
Posts: 3
Joined: 15 Sep 2014 04:59
Location: РФ

Post by mavrus »

модель от aav8 отлично работает во всех доступных мне версиях Proteus:

Image

А вот при попытке использовать граф вылетела ошибка модели. Будем разбираться, такой инструмент жалко терять.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

mavrus wrote:модель от aav8 отлично работает во всех доступных мне версиях Proteus:
Ну так скриншот схемы бы выложили тогда и сам проект с моделью.

А то Logic Anslyser от VSM посмотреть у себя в Proteus каждый может... :wink:
mavrus
Junior
Posts: 3
Joined: 15 Sep 2014 04:59
Location: РФ

Post by mavrus »

Stan wrote:Ну так скриншот схемы бы выложили тогда и сам проект с моделью.
Ну так не вопрос :idea:

Image

ссылку на проект aav8 отправил в личку

компонент 580ВМ80 Lavr выкладывал здесь
Stan wrote:А то Logic Anslyser от VSM посмотреть у себя в Proteus каждый может... :wink:
дык это не просто LA VSM, а LA VSM с трассировкой VSM модели 580ВМ80, а это мало кто видел :)
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

mavrus wrote:ссылку на проект aav8 отправил в личку
Благодарю, получил!
mavrus wrote:дык это не просто LA VSM, а LA VSM с трассировкой VSM модели 580ВМ80, а это мало кто видел :)
Дык, это понятно! Но схема-то всегда интересней - что он "молотит" этот проект!? :wink:


P.S. А схему потому и попросил, что при всем усердии на графиках "LA VSM с трассировкой
VSM модели 580ВМ80
" не увидел привычных сигналов Ф1 и Ф2.
Значит это всё-таки модель Z80 CPU.

-------Image
mavrus
Junior
Posts: 3
Joined: 15 Sep 2014 04:59
Location: РФ

Post by mavrus »

Stan wrote: не увидел привычных сигналов Ф1 и Ф2.
Значит это всё-таки модель Z80 CPU
так и есть, aav8 всегда об этом и писал - система команд и растактовка i8080 в корпусе Z80. Корпусирование в 580ВМ80 - один из следующих пунктов. Насчёт Ф1 и Ф2 - не сильно удивлюсь, если они будут реализованы чисто символически, без симуляции. В фирменных моделях процы вообще без тактов, частота задаётся числом в параметрах модели. Это вопрос для обсуждения.
Last edited by mavrus on 28 Sep 2014 07:17, edited 2 times in total.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

mavrus wrote:так и есть, aav8 всегда об этом и писал - система команд и растактовка i8080 в корпусе Z80.
Так я и не против! :o Просто поэтому и было интересно увидеть реальную схему в "Proteus".

Когда Lavr свою модель показывал, у него С1 и С2 (aka Ф1 и Ф2) на схеме присутствовали.

Image
Pugnator
Junior
Posts: 2
Joined: 22 Sep 2014 07:14
Location: 91.195.22.23

Post by Pugnator »

Столкнувшись с проблемой сборки под gcc при написании модели процессора Z80 и CDP1820, пошел немного иным путем. В итоге вышло вот что
http://habrahabr.ru/post/224739/

Проект пока сырой, но может кому-то тоже будет интересно
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Pugnator wrote:Столкнувшись с проблемой сборки под gcc при написании модели процессора Z80 и CDP1820,
пошел немного иным путем. В итоге вышло вот что http://habrahabr.ru/post/224739/
Что-то я там никаких следов "написания модели процессора Z80" не заметил... :(
Pugnator
Junior
Posts: 2
Joined: 22 Sep 2014 07:14
Location: 91.195.22.23

Post by Pugnator »

Статья немного не про то, все же.
Написание модели сейчас в процессе. Собственно, писать я начал наткнувшись на эту тему :)
Я решил "изобретать велосипед" до конца. Ассемблер-дизассемблер у меня свой, ибо я хочу сделать поддержку всех недокументированных опкодов.
Вот как раз вопрос - есть ли эталонный бинарь/исходник? Со списком всех опкодов и собранный из него файл?

нужно для написания тестов дизассемблера/эмулятора

Вот я попытался сделать

http://pastebin.com/qDCpa8x2
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

Довольно простенький проект в Proteus
COPPIM и терминалка
связь через com0com
Стандартный терминал WinXP
по одному символу все работает нормально
Когда пытаюсь переслать сразу примерно 30К обычного текста(в сторону proteus), много чего теряется.
Я думаю это нормально.
Проверьте пж-ста эту проблемку.
Proteus7.7(cr)
Машинка довольно не плохая
OS winXP 4Г
joogorden
Junior
Posts: 5
Joined: 13 Mar 2013 08:37
Location: 193.232.54.1

Re: Proteus C++ DLL's

Post by joogorden »

Как обстоят дела с моделями i8080 и Z80 для протеуса? Очень хочется попользоваться
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Re: Proteus C++ DLL's

Post by aav8 »

вот вроде оно...
давно не занимался...
там z80 а система команд i8080
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

Я тут ссылочку полезную по PROTEUS выложу. Она и мне часто бывает нужна с разных машин...

FAQ (ЧаВО) по PROTEUS для начинающих и не только

Пусть здесь будет, чтобы находилась легко... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

aav8 wrote:там z80 а система команд i8080
Ну и поскольку "там z80", я решил на этом "z80" погонять свой проект Nedo-"Специалист" на UB880... 8)
И выяснилось вот что: под Windows_7 и Proteus 7.7 эта библиотека - х80.dll
так сразу и не работат... :wink: Засада в том, что Proteus 7.7 не говорит, что для
работы х80.dll необходима динамическая библиотека msvcr100d.dll.

Её можно скачать в Интернете, хотя бы вот здесь, и положить её в папку BIN Proteus-a,
чтобы не морочить себе голову регистрацией *.dll.
После чего этот "z80 с системой команд i8080" в Proteus 7.7 под Windows_7 работает нормально.

А вот под Windows 98 в Proteus 6.7 ситуация хуже, поскольку эта msvcr100d.dll,
как мне кажется, не довольна Windows 98.
Proteus 6.7 останавливается на этапе компиляции проекта с ошибкой:

FATAL: [DD1] External model DLL "x80.DLL" not found. GLE=0x0000001F.

GLE=0x0000001F, насколько я понимаю, это ERROR_GEN_FAILURE.

Танцы с бубнами пока не помогли, поскольку не ясно, в чем проблема у msvcr100d.dll под Windows 98
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Proteus C++ DLL's

Post by Lavr »

Ну и поскольку терять-то как бы было и нечего, решился я на такой вот последний эксперимент...

Вызываемые msvcr100d.dll функции WinAPI, которых нет в KERNEL32.dll от Вынь 98 впервые
появляются в KERNEL32.dll от Вынь ХР.
Я пропатчил msvcr100d.dll, чтобы она вызывала KERNEL33.dll и положил ей рядом KERNEL32.dll
от Вынь ХР, переименованный в KERNEL33.dll. :egeek:

Ну я также посмотрел, что KERNEL32.dll от Вынь ХР "хочет" ntdll.dll, которой нет в Вынь 98, но
я её тоже рядом приложил... :wink:
Я, конечно, понимаю, что ntdll.dll тоже чего-нибуть "хочет", но так в папку Протеуса весь Вынь ХР
перекочует... может и так справятся... 8)

Результат при старте проекта Протеуса был следующий:

13297 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\PROSPICE.DLL SUCCESS Offset: 261120 Length: 4096
13298 12:25:44 Isis FindOpen C:\PROTEUS 6 PROFESSIONAL\SAMPLES\1_I8080\X80.DLL NOTFOUND
13299 12:25:44 Isis FindOpen C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS x80.dll
13300 12:25:44 Isis FindClose C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS
13301 12:25:44 Isis Attributes C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS GetAttributes
13302 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS QUERY
13303 12:25:44 Isis Open C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS OPENEXISTING READONLY DENYWRITE
13304 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Offset: 0 Length: 64
13305 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Beginning Offset: 232
13306 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Offset: 232 Length: 248
13307 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Beginning Offset: 232
13308 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Offset: 232 Length: 488
13309 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS QUERY
13310 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Offset: 72704 Length: 3584
13311 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS Offset: 70144 Length: 2560
13312 12:25:44 Isis Attributes C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS GetAttributes
13313 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS QUERY
13314 12:25:44 Isis Open C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS OPENEXISTING READONLY DENYWRITE
13315 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 0 Length: 64
13316 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Beginning Offset: 232
13317 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 232 Length: 248
13318 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Beginning Offset: 232
13319 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 232 Length: 408
13320 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS QUERY
13321 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 1447936 Length: 1024
13322 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 1381376 Length: 4096
13323 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS Offset: 1385472 Length: 4096
13324 12:25:44 Isis Attributes C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS GetAttributes
13325 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS QUERY
13326 12:25:44 Isis Open C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS OPENEXISTING READONLY DENYWRITE
13327 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 0 Length: 64
13328 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Beginning Offset: 248
13329 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 248 Length: 248
13330 12:25:44 Isis Seek C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Beginning Offset: 248
13331 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 248 Length: 408
13332 12:25:44 Isis Directory C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS QUERY
13333 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 491008 Length: 4096
13334 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 495104 Length: 4096
13335 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 467968 Length: 4096
13336 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS Offset: 472064 Length: 4096
13337 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\MSVCR100D.DLL SUCCESS CLOSE_FINAL
13338 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\MODELS\X80.DLL SUCCESS CLOSE_FINAL
13339 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\KERNEL33.DLL SUCCESS CLOSE_FINAL
13340 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\PROSPICE.DLL SUCCESS Offset: 265216 Length: 4096
13341 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\SPICESIM.DLL SUCCESS Offset: 719872 Length: 4096
13342 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\PROSPICE.DLL SUCCESS Offset: 58880 Length: 4096
13343 12:25:44 Isis Read C:\WINDOWS\SYSTEM\SHELL32.DLL SUCCESS Offset: 81920 Length: 4096
13344 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\SPICESIM.DLL SUCCESS Offset: 883712 Length: 4096
13345 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\LOADERS.DLL SUCCESS Offset: 44032 Length: 4096
13346 12:25:44 Isis Read C:\PROTEUS 6 PROFESSIONAL\BIN\LOADERS.DLL SUCCESS Offset: 64512 Length: 4096
13347 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\PROSPICE.DLL SUCCESS CLOSE_FINAL
13348 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\SPICEINP.DLL SUCCESS CLOSE_FINAL
13349 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\SPICESIM.DLL SUCCESS CLOSE_FINAL
13350 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\OBJITF.DLL SUCCESS CLOSE_FINAL
13351 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\DSIM.DLL SUCCESS CLOSE_FINAL
13352 12:25:44 Isis Close C:\PROTEUS 6 PROFESSIONAL\BIN\LOADERS.DLL SUCCESS CLOSE_FINAL
13353 12:25:44 Isis FindOpen C:\WINDOWS\TEMP\LISA5145.SDF SUCCESS LISA5145.SDF
13354 12:25:44 Isis FindClose C:\WINDOWS\TEMP\LISA5145.SDF SUCCESS
13355 12:25:44 Isis Delete C:\WINDOWS\TEMP\LISA5145.SDF ACCDENIED
13356 12:25:44 Isis Attributes C:\WINDOWS\MEDIA\DING.WAV SUCCESS GetAttributes
13357 12:25:44 Isis Open C:\WINDOWS\MEDIA\DING.WAV SUCCESS OPENEXISTING READONLY DENYNONE
13358 12:25:44 Isis Ioctl C: SUCCESS Subfunction: 08h
13359 12:25:44 Isis Attributes C:\WINDOWS\MEDIA\DING.WAV SUCCESS Get Modify
13360 12:25:44 Isis Close C:\WINDOWS\MEDIA\DING.WAV SUCCESS CLOSE_FINAL
13361 12:25:44 Isis FindOpen C:\PROTEUS 6 PROFESSIONAL\RESULTS\*.PDF SUCCESS AB66C4CC.PDF


Видно, что PROSPICE.DLL Протеуса вызвала x80.dll - модель z80, та в свою очередь вызвала
MSVCR100D.DLL, из которой, как ей и велели, был вызван KERNEL33.DLL.
Все обращения к KERNEL33.DLL прошли "успешно", но она в свою очередь ntdll.dll не вызывала.
После чего Протеус, "подумав" своими *.DLL сказал мне DING.WAV, записал протокол ошибок,
и выдал уже известный результат:

FATAL: [DD1] External model DLL "x80.DLL" not found. GLE=0x0000001F (= ERROR_GEN_FAILURE)

В общем из Венды 98 не сделать "локальный" Вынь ХР, похоже... :ebiggrin:
iLavr