Z80 и EI/DI
Moderator: Shaos
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Z80 и EI/DI
Микропроцессор i8080 (aka K580BM80A) выполняя аппаратные прерывания и команды EI/DI
сообщает о своем состоянии по выводу INTE .
У микропроцессора Z80 аналогичного вывода нет.
Но по каким-либо косвенным признакам есть возможность узнать аппаратно это его состояние?
сообщает о своем состоянии по выводу INTE .
У микропроцессора Z80 аналогичного вывода нет.
Но по каким-либо косвенным признакам есть возможность узнать аппаратно это его состояние?
iLavr
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
У меня есть схема Z80-card для "Ориона-128". Сигнал SND - это они не INTE случаем "сконструировали"?
У "Ориона-128" звук-то изначально вроде как тоже формировался через вывод INTE по командам EI/DI...You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
Да, похоже на то, что это именно оно:
Единственное, чем это мне не подходит, К580ВМ80А делает еще и DI чисто аппаратно, когда входит
в обслуживание прерывания...
А приведенная схема этого не отслеживает...
http://retro.h1.ru/Orion/Z80_Card/Z80Card.phpДля эмуляции отсутствующего у микропроцессора 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.
Единственное, чем это мне не подходит, К580ВМ80А делает еще и DI чисто аппаратно, когда входит
в обслуживание прерывания...
А приведенная схема этого не отслеживает...

iLavr
-
- Admin
- Posts: 24024
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Z80 и EI/DI
ой костыли какие...Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
А что делать? Знаешь решение лучше?Shaos wrote:ой костыли какие...Работа формирователя заключается в "вылавливании" кодов команд EI и DI в циклах M1 микропроцессора (чтение кода операции) и установке INTE в соответствующее состояние
Тем более, что эти костыли не решают основной задачи - отследить, что Z80 вошел в прерывание.

iLavr
-
- Admin
- Posts: 24024
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Z80 и EI/DI
Лучшим решением было бы забыть про формирование звука через INTE...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
А никто и не собирался этим заниматься.Shaos wrote:Лучшим решением было бы забыть про формирование звука через INTE...
Мне просто необходимо как-то аппаратно узнать - вошел Z80 в обслуживание прерывания или нет.
А всё, что выше, это я просто пошукал, что на этот повод находит Гугл...
А в "Галаксии", чтобы отловить вход в обслуживание прерывания используют вот такой "костылик":
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Z80 и EI/DI
Lavr wrote:Мне просто необходимо как-то аппаратно узнать - вошел Z80 в обслуживание прерывания или нет.
Оно?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.
-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
Так "Оно" и нарисовано: 6 - M1, 7 - IORQ, или на английском "Оно" стало понятнее?IgorR76 wrote:Оно?M1, when operating together with IORQ, indicates an interrupt acknowledge cycle.

Lavr wrote:А в "Галаксии", чтобы отловить вход в обслуживание прерывания используют вот такой "костылик":
iLavr
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Z80 и EI/DI

-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
Хум хау... финишед МГИМО ?IgorR76 wrote:Разумеется, понятнее!

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

iLavr
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Z80 и EI/DI

-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
Хум хау... точно... финишед МГИМО...IgorR76 wrote:На схеме не видно, когда наступает событие M1+IORQ.

На схеме великолепно видно всякому, умеющему схемы читать:
событие наступает = /(//M1 & //IORQ) где "/" - отрицание
Чего уж более то?
iLavr
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Z80 и EI/DI

Если это то, что нужно Вам - то

-
- Supreme God
- Posts: 16682
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Z80 и EI/DI
То что нужно мне - отчасти изображено на этом рисунке:IgorR76 wrote:Если это то, что нужно Вам - то!
А то, что написано на английском - мне никчему, я это вполне знаю по-русски.
Отчасти - потому как это сработает только в случае /(//M1 & //IORQ), а сигнал
INTE держится до следующей команды EI.
Поэтому я и назвал это "костыликом". И по схеме видно, что "костылик" подперли еще
и триггером, чтобы событие /(//M1 & //IORQ) удержать.
Так что язык схем информативнее мануалов, даже если последние писаны на английском.

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