nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 20 Oct 2018 07:19



Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Z80 и EI/DI 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Микропроцессор i8080 (aka K580BM80A) выполняя аппаратные прерывания и команды EI/DI
сообщает о своем состоянии по выводу INTE .

У микропроцессора Z80 аналогичного вывода нет.
Но по каким-либо косвенным признакам есть возможность узнать аппаратно это его состояние?

_________________
iLavr


18 Jun 2016 09:33
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
У меня есть схема Z80-card для "Ориона-128". Сигнал SND - это они не INTE случаем "сконструировали"?
Attachment:
Zcard2.jpg
Zcard2.jpg [ 279.85 KiB | Viewed 3867 times ]

У "Ориона-128" звук-то изначально вроде как тоже формировался через вывод INTE по командам EI/DI...

_________________
iLavr


18 Jun 2016 10:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Да, похоже на то, что это именно оно:
Quote:
Для эмуляции отсутствующего у микропроцессора Z80 сигнала INTE в "Z80 Card " используется формирователь на элементах DD4.2 DD4.3 DD7.4 DD6.1 DD 6.2 (этот узел появился только из-за требования полной совместимости с "Орионом 128" в части генерации звуковых колебаний). Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние Команды EI (11111011В) и DI (11110011B) различаются только на один бит D3, его значение "защелкивается" триггером DD6.2. Остальные детали устройства дешифрируют код команды и осуществляют привязку к спаду сигнала М1.
http://retro.h1.ru/Orion/Z80_Card/Z80Card.php

Единственное, чем это мне не подходит, К580ВМ80А делает еще и DI чисто аппаратно, когда входит
в обслуживание прерывания...
А приведенная схема этого не отслеживает... :-?

_________________
iLavr


18 Jun 2016 10:20
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17015
Location: Colorado
Reply with quote
Quote:
Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние

ой костыли какие...

_________________
:eugeek: https://twitter.com/Shaos1973


18 Jun 2016 10:31
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Quote:
Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние
ой костыли какие...
А что делать? Знаешь решение лучше?
Тем более, что эти костыли не решают основной задачи - отследить, что Z80 вошел в прерывание. :osad:

_________________
iLavr


18 Jun 2016 10:44
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17015
Location: Colorado
Reply with quote
Лучшим решением было бы забыть про формирование звука через INTE...

_________________
:eugeek: https://twitter.com/Shaos1973


18 Jun 2016 10:52
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Лучшим решением было бы забыть про формирование звука через INTE...

А никто и не собирался этим заниматься.
Мне просто необходимо как-то аппаратно узнать - вошел Z80 в обслуживание прерывания или нет.

А всё, что выше, это я просто пошукал, что на этот повод находит Гугл...

А в "Галаксии", чтобы отловить вход в обслуживание прерывания используют вот такой "костылик":
Attachment:
GalaInt.gif
GalaInt.gif [ 19.02 KiB | Viewed 3860 times ]

_________________
iLavr


18 Jun 2016 11:51
Profile
Senior

Joined: 27 Jul 2015 16:20
Posts: 117
Reply with quote
Lavr wrote:
Мне просто необходимо как-то аппаратно узнать - вошел Z80 в обслуживание прерывания или нет.


Quote:
IORQ. Input/Output Request (output, active Low, tristate). IORQ indicates that the lower half of the address bus holds a valid I/O address for an I/O read or write operation. IORQ is also generated concurrently with M1 during an interrupt acknowledge cycle to indicate that an interrupt response vector can be placed on the data bus.
M1. Machine Cycle One (output, active Low). M1, together with MREQ, indicates that the current machine cycle is the op code fetch cycle of an instruction execution. M1, when operating together with IORQ, indicates an interrupt acknowledge cycle.


Оно?


18 Jun 2016 19:20
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
IgorR76 wrote:
Quote:
M1, when operating together with IORQ, indicates an interrupt acknowledge cycle.

Оно?

Так "Оно" и нарисовано: 6 - M1, 7 - IORQ, или на английском "Оно" стало понятнее? :o
Lavr wrote:
А в "Галаксии", чтобы отловить вход в обслуживание прерывания используют вот такой "костылик":
Image

_________________
iLavr


18 Jun 2016 20:07
Profile
Senior

Joined: 27 Jul 2015 16:20
Posts: 117
Reply with quote
:o Разумеется, понятнее!


18 Jun 2016 20:17
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
IgorR76 wrote:
:o Разумеется, понятнее!
Хум хау... финишед МГИМО ? :mrgreen:

Язык схем вобще-то интернационален... :wink:

_________________
iLavr


18 Jun 2016 20:21
Profile
Senior

Joined: 27 Jul 2015 16:20
Posts: 117
Reply with quote
:) На схеме не видно, когда наступает событие M1+IORQ.


18 Jun 2016 20:24
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
IgorR76 wrote:
:) На схеме не видно, когда наступает событие M1+IORQ.
Хум хау... точно... финишед МГИМО... :osad:

На схеме великолепно видно всякому, умеющему схемы читать:
событие наступает = /(//M1 & //IORQ) где "/" - отрицание
Чего уж более то?

_________________
iLavr


18 Jun 2016 20:30
Profile
Senior

Joined: 27 Jul 2015 16:20
Posts: 117
Reply with quote
:no: Это способ получения нужного сигнала. А что именно сигнализируют эти линии, написано в мануале.
Если это то, что нужно Вам - то :kruto: !


18 Jun 2016 20:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
IgorR76 wrote:
Если это то, что нужно Вам - то :kruto: !

То что нужно мне - отчасти изображено на этом рисунке:
Image
А то, что написано на английском - мне никчему, я это вполне знаю по-русски.

Отчасти - потому как это сработает только в случае /(//M1 & //IORQ), а сигнал
INTE держится до следующей команды EI.
Поэтому я и назвал это "костыликом". И по схеме видно, что "костылик" подперли еще
и триггером, чтобы событие /(//M1 & //IORQ) удержать.

Так что язык схем информативнее мануалов, даже если последние писаны на английском. :wink:


P.S. В общем, если кто-либо не знает другого более простого решения, то сигнал INTE можно
соотрудить из двух "костыликов": от Z80-Card - детект EI/DI, и по схеме выше - детект
обслуживания прерывания. Довольно некрасиво получается...

_________________
iLavr


18 Jun 2016 20:48
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 16 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.