nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 06:22



Reply to topic  [ 295 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 20  Next
Proteus C++ DLL's 
Author Message
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
aav8 wrote:
Это выходит HLT - 2 машинных цикла?

Минимум. Максимум не ограничен :)
Во всех справочниках количество тактов для команды HLT указано 7. Т.е. как раз два цикла 4+3. Но второй цикл повторяется пока не произойдёт выход из режима останова.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


19 Dec 2012 04:48
Profile WWW
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Post 
Вот чего откопал:
Quote:
... Заметим, что модификация МП КР580 с индексом А обладает возможностью отработки в режиме прерывания не только команд рестарта, но любой последовательности команд, аппаратно формируемой в этом режиме контроллером прерываний. ...


20 Dec 2012 08:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
aav8 wrote:
Вот чего откопал:
Quote:
... Заметим, что модификация МП КР580 с индексом А обладает возможностью отработки в режиме прерывания не только команд рестарта, но любой последовательности команд, аппаратно формируемой в этом режиме контроллером прерываний. ...

Мы как бы это давно обсудили - и это действительно так...

Интересно - а МП КР580 БЕЗ индекса А только RST N обслуживает?
А CALL ADDR - как бы уже и не умеет? :wink:

Дал бы ссылочку - откуда эти сведения?
Ты уже спрашивал как-то, что К580ИК80 обрабатывает только RST N...
Насколько я знаю, кроме электрических характеристик и разницы в таймингах,
различий в логике работы - нет.

_________________
iLavr


20 Dec 2012 11:33
Profile
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Post 
Quote:
Интересно - а МП КР580 БЕЗ индекса А только RST N обслуживает?
А CALL ADDR - как бы уже и не умеет?

Не УЖЕ а скорее всего ЕЩЕ не умеет.
Книга бумажная называется "программы для микропроцессоров"
кажется 89 года, автора не помню - позже уточню.
Знал что у меня она есть - наконец вчера нашел.


20 Dec 2012 18:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Альтернатив - нет. Буду почитать.

Факт, обозначенный коллегой aav8, в вышеуказанной книге имеет место быть.

Но есть у авторов некоторое противоречие самим себе.
С одной стороны:

Image

но с другой стороны!... :o

Image

Как говорится: AS IS... Вот вам "буй"... Волобуев, вот Ваш меч! :lol: ну и т.д. :roll:

Я такой постулат вижу впервые. Своё мнение - изложил выше. No Comments... :(

_________________
iLavr


Last edited by Lavr on 21 Dec 2012 08:51, edited 1 time in total.



21 Dec 2012 08:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
aav8 wrote:
Это выходит HLT - 2 машинных цикла?

А по XTHL у тебя какая растактовка? Что-то он мне голову проморочил... :(
18 тактов 5 циклов.
У меня почему-то получается 4-4-3-4-3... а в другом источнике М1=5... -
совсем не сходится... :o

_________________
iLavr


26 Dec 2012 00:13
Profile
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Post 
Lavr wrote:
aav8 wrote:
Это выходит HLT - 2 машинных цикла?

А по XTHL у тебя какая растактовка? Что-то он мне голову проморочил... :(
18 тактов 5 циклов.
У меня почему-то получается 4-4-3-4-3... а в другом источнике М1=5... -
совсем не сходится... :o

Чесно говоря с растактовкой пока особенно не заморачивался -
в основном расцикловкой - XTHL за пять циклов - все
стандартные по 3 такта ну и ест-но первый за 4 такта.
Ориентировался в основном на Z.


26 Dec 2012 18:20
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
aav8 wrote:
Lavr wrote:
А по XTHL у тебя какая растактовка? Что-то он мне голову проморочил... :(
У меня почему-то получается 4-4-3-4-3... а в другом источнике М1=5... -
совсем не сходится... :o
Чесно говоря с растактовкой пока особенно не заморачивался -
в основном расцикловкой - XTHL за пять циклов - все
стандартные по 3 такта ну и ест-но первый за 4 такта.

По XTHL у меня несколько неожиданная информация:

п. 14. Машинный цикл 5 (МЦ5) имеет пять тактов. Используются только в команде XTHL;
Так что 4-4-3-4-3 отпадает как бы однозначно... :-?

_________________
iLavr


02 Jan 2013 02:11
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Lavr wrote:
По XTHL у меня несколько неожиданная информация:
п. 14. Машинный цикл 5 (МЦ5) имеет пять тактов. Используются только в команде XTHL;
Так что 4-4-3-4-3 отпадает как бы однозначно... :-?

Тобою ненавистная дока это и не скрывала. Растактовка XTHL следующая: 4+3+3+3+5=18, что коррелируется с цветной табличкой из Радио.
Image


02 Jan 2013 02:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Kristinka80 wrote:
...скачала вашу модель процессора К580ВМ80А но эту схемку для того чтоб его "дёргать за ножки" не получается.

А эту схемку чтоб его "дёргать за ножки" я, как мне кажется, и не выкладывал... :(

Её и нет больше как таковой... В процессе работы над моделью процессора
К580ВМ80А схемка постепенно изменялась и сейчас она стала вот такой:

Image

Но и эта схема Вам не нужна, на мой взгляд, поскольку та модель, которую Вы
скачали - это "контейнер" Proteus-a, который вызывает динамическую библиотеку
K580BM80.dll.

Без этой библиотеки "дёргать ножками" программа не будет.



PS. Для внимательных любителей "косяков": да, K580BM80 устанавливается в начальное
состояние высоким логическим уровнем - из схемы выше видно, что это так и есть (выделено цветом).

_________________
iLavr


31 Mar 2013 07:42
Profile
Junior

Joined: 04 Apr 2013 06:59
Posts: 1
Location: 178.159.16.11
Reply with quote
Post 
Тоже начал делать модель 8080 для протеуса.
Пока сделал модели для 8024 и 8028. https://docs.google.com/file/d/0B2XWxBUyDlN3V2t6SkF6eW00d1E/edit?usp=sharing может кому пригодятся. В архиве лежит i8080.dll в качестве заглушки.


04 Apr 2013 20:37
Profile
Junior

Joined: 18 Apr 2014 01:01
Posts: 4
Location: 62.221.116.212
Reply with quote
Post 
На девятой странице форума было обсуждение рабработки DLL для протеуса на другом языке программирования, отличном от C++. Но судя по всему, до практической реализации модели не дошло. У меня получилось создать модель для протеуса на бейсике. Статья об этом. http://purebasic.mybb.ru/viewtopic.php?id=496
При разработке модели на бейсике (диалект PureBasic), столкнулся той же проблемой, какая есть в Borland C++ Builder, т. е. методы класса вызывались используя соглашение stdcall, а не thiscall как в VS C++. Решить проблему оказалось не сложно. В код был добавлен макрос, выполняющийся на этапе компиляции и заменяющий ассемблерную инструкцию PUSH EAX на MOV ECX, EAX во всех вызовах методов объектов.
В процедурах методов класса, была добавлена строка mov *This, ecx, копирующая содержимое регистра ecx в локальную переменную и тем самым, соглашение вызова стало thiscall.
Возможно все это можно проделать и в Borland C++ Builder.


18 Apr 2014 01:22
Profile
Junior

Joined: 18 Apr 2014 01:01
Posts: 4
Location: 62.221.116.212
Reply with quote
Post 
Shaos wrote:
Кодить на басике, чтобы потом на асме исравлять - это садомазо высшей степени извращённости...
На асме совсем не много.
Соглашение вызовов методов исправляется компилятором с помощью такого макроса (он перехватывает все инструкции CALL и ищет вызовы методов по опкодам).
Code:
!macro CALL arg
! {
! clabel = $
! CALL arg
! plabel = clabel-3
! callsize = $-clabel
! load ops dword from plabel
! load opc byte from plabel+4
! If ops=$FF008B50 & (opc=$10 | opc=$50 | opc=$90)
!   If opc=$10
!     db $10
!   Else If (opc=$50 | opc=$90)
!     db $00
!     Repeat callsize
!       load op byte from clabel+callsize-%
!       store byte op at clabel+callsize-%+1
!     End Repeat
!   End If
!   store dword $008BC189 at plabel
!   store byte $FF at plabel+4
! End If
! }
Макрос выполняется при компиляции, а не при выполнении программы. Он ищет такие последовательности инструкций.
Code:
50             PUSH EAX
8B00           MOV EAX, DWORD PTR DS:[EAX]
FF10           CALL DWORD PTR DS:[EAX]
И заменяет PUSH EAX на MOV ECX, EAX. Т. е. получается.
Code:
89C1           MOV ECX, EAX
8B00           MOV EAX, DWORD PTR DS:[EAX]
FF10           CALL DWORD PTR DS:[EAX]
С точки зрения программиста, в коде ничего не меняется (что-либо переделывать не нужно). Достаточно добавить макрос в начало кода и его выполнит асемблер FASM (если кто-то не знает, FASM входит в дистрибутив PureBasic и используется в процессе компиляции, при трансляции асм. кода в объектный файл).

Поэтому никакого садомазо и изврата в этом нет. Просто задействован механизм модификации кода при компиляции.

Если под асмом имели в виду строку mov *This, ecx в некоторых процедурах, то ее назначение в поддержке соглашения вызова thiscall и в этом так же нет изврата.

Если по прежнему считаете что это "это садомазо высшей степени извращённости", попробуйте аналогичным образом создать DLL для протеуса на C++ в Borland Builder. Может после этого, поймете что пара асм вставок и небольшой макрос, это НЕ "садомазо высшей степени извращённости". :D :wink:


19 Apr 2014 00:40
Profile
Junior

Joined: 18 Apr 2014 01:01
Posts: 4
Location: 62.221.116.212
Reply with quote
Post 
Shaos wrote:
Бейсик он и в Африке бейсик, даже если компилируется через Ассемблер :roll:
Это все равно что судить о человеке по его национальности, т. е. если у него национальность xxxx, то он недочеловек, а если национальность yyyy, то он суперчеловек. При этом не важно хороший это человек или нет, национальность важнее.
По вашему это правильно?

Существует много диалектов бейсиков, часто не похожих друг на друга (как по синтаксису, так и по возможностям).
Сколько вы знаете языков программирования, на которых можно создавать библиотеки для пртеуса? А на скольких языках программирования можно писать драйверы для винды? То и другое возможно на PureBasic. Вот вам и бейсик.

Теперь по теме, пока тут выясняли какой язык лучше, написал еще одну статью. http://purebasic.mybb.ru/viewtopic.php?id=497
На сей раз, моделька уже не тестовая, а имеющая практическое применение и являющаяся 1-Wire анализатором. О его прототипе вскользь упоминали на третьей странице темы.


20 Apr 2014 13:14
Profile
Fanat

Joined: 10 Feb 2014 03:37
Posts: 79
Reply with quote
Post 
Интересная тема. А насколько точна модель по сигналам? На ZX.PK.RU тоже поднимали тему модели, правда в железе. Раскрыли кристалл, восстановили схему и теперь модель действительно работает и более того, проходит тесты как настоящий процессор. А вы прогоняли свою модель этими тестами? Быть может можно надеяться на модель Z80? Спасибо за внимание.


28 Aug 2014 14:41
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 295 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 20  Next

Who is online

Users browsing this forum: No registered users and 21 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.