i8080: возможно ли реализовать прерывания без доп. обвязки?

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

И счет уже 2:1 в пользу этого мнения... :mrgreen:
INT_rgm.gif
Shaos, уточни этот момент по имеющимся у тебя англоязычным источникам?
You do not have the required permissions to view the files attached to this post.
iLavr
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Mixa64 »

"Однако, из памяти этот байт не может быть выбран [...], так как бит ЧТП в слове состояния машинного цикла равен нулю."
Откуда такая железобетонная уверенность? :mrgreen: :lol:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

Mixa64 wrote:"Однако, из памяти этот байт не может быть выбран [...], так как бит ЧТП в слове состояния машинного цикла равен нулю."
Откуда такая железобетонная уверенность? :mrgreen: :lol:
Я думаю, они в этих описаниях полагаются на стандартное включение 8080 совместно с 8228.
Там уверенность действительно железобетонная!
Если нет в схеме включения 8228, бестолково писать, что "бит ЧТП в слове состояния машинного цикла равен нулю."
Аппаратно это не имеет никакого значения...

Ну и действительно выходит, что только бит 0 в STATUS спообен разграничить эти режимы.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

В общем, со счетом 3:1 шина адреса активна во время обслуживания прерывания. :lol:
Посмотрел я в "мануал" от Кобылинского на микропроцессор КР580ВМ80А. Текст в нем
почти слово в слово, как скопированный выше.
И временнАя диаграмма - такая же.

В англоязычных ресурсах о состоянии шины адреса умалчивают, как, впрочем, и в
большинстве отечественных источников...
iLavr
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Mixa64 »

Lavr wrote:В англоязычных ресурсах о состоянии шины адреса умалчивают, как, впрочем, и в
большинстве отечественных источников...
По большому счету то, что через нее передается, - бесполезно, INTA это цикл безадресного обмена. Но, с другой стороны, это прикольно, что через нее что-то передается. Ну и глюкам прикольности придает, как мы видим :)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

Mixa64 wrote:По большому счету то, что через нее передается, - бесполезно,
INTA это цикл безадресного обмена.
Если он поддержан аппаратно...
Ну а если всё сделано по-простецки тот еще глюканарий! :lol:

Поэтому и фигово, что состояние шины не упоминается в большинстве источников - был бы повод задуматься.
Я и сам впал в ересь с высокоимпедансным состоянием по аналогии с режимом захвата.
А оно оказалось гораздо хуже! :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

В общем приделал я в своей простейшей ЭВМ на КР580ВМ80А реакцию на RST7 по следующей схеме:
580_RST7.gif
Пришлось "неспортивно" добавить ИЛИ-НЕ 555-й серии, поскольку на D0 уже висят и память и порт.
Также на схемотехнику повлияло, что SYNC и DBIN уже были буферированы инверторами, а от
корректной обработки READY осталась половинка К155ТМ2.

Идея неоригинальная: фиксируется в половинке К155ТМ2 бит STATUS D0 = 1: INTA.
И в момент прерывания он блокирует прохождение DBIN сквозь вентиль ИЛИ-НЕ.
Поэтому на ШД действуют только 8 резисторов к +5В, что, собственно, и есть RST7.
Проще у меня при всем желании не получилось.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

RST7 без фиксации STATUS

Post by Lavr »

Вместо эпиграфа... wrote:Намедни кучер Иона сделал из дерева человечка: дернешь этого человечка
за ниточку, а он и сделает непристойность. Однако же Иона не хвастает.
(с) Чехов А.П. 'На чужбине'
Я сегодня тоже сделал одну вещь из серии "Миссия невыполнима" - красивую,
но бестолковую и громоздкую, как памятники Зураба нашего Церетелли... :mrgreen:

Суть задачи мне не далась еще в начале лета, когда я доделывал
Простейшую ЭВМ на КР580ВМ80А: обслужить прерывание RST7, заданное
аппаратно резисторами на шине данных.
Для этого всего-то надо запретить прохождение сигнала чтения /RD,
который создается из DBIN через инвертирующий вентиль, этим вентилем
удобно и запрещать /RD в момент обслуживания прерывания.

С этой целью используют биты слова состояния процесора (STATUS) -
либо D0 = 1, что означает обслуживаем прерывание, либо D7 = 0, что
означает НЕ читаем!

В конструкции Простейшей ЭВМ у меня было спортивное условие - сделать
всё на 155-й серии, а мы помним, что на ШД цеплять 2 входа 155-й ТТЛ
очень рискованная затея, поэтому я хотел на ШД не цепляться, но никак
не вышло - поэтому поставил 555-ю серию, что вышло неспортивно...

Но сейчас ситуация сложилась ещё хуже - я начал моделировать "Кроху",
но поскольку коллега PVV перпиливает в КР580ВМ80А нашу модель Z80,
то с перыванием и выдачей STATUS - не всё ещё гладко.

В общем, поскольку я "Кроху" почти нарисовал, бросать был жалко этот
проект, то пришлось порешать нерешаемое и впихнуть невпиxyемое... 8)

Вкратце в итоге решение вот какое: процесор, приняв сигнал прерывания,
сбросит сигнал INTE, вот тут то и пора запрещать /RD - это не проблема,
а вот чем его обратно разрешить раз INTА нам недоступен?...
Ну и я решил - разрешать /RD поможет признак, что программа пришла на
адрес 0038Н. Картинка иллюстрирует это.
INT_0038H.gif
Не скажу, что элегантно, да - громоздко... но кто умеет проще - сделайте
проще? Я, честно говоря, ооочень доволен.. и в отличие от кучер Ионы -
похвастаюсь, ибо нетривиально! :wink:
No_INTA.gif
P.S. Кстати, кто делает или моделирует "Кроху" - обратите внимание, они тоже фиксируют
бит статуса в регистре типа ТМ2. Надпись слабо разборчива, но это либо D0 либо D7,
надо уточнить по логике схемы... Причем фиксируют они бит STATUS укорченным SYNC -
{SYNC & F1}:
Kroxa_RST7.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

Lavr wrote:Я, честно говоря, ооочень доволен.. и в отличие от кучер Ионы - похвастаюсь, ибо нетривиально!
Кстати говоря, если кто не понял, нетривиальность решения не в том, что я сделал какой-то
там селектор адреса с парочкой лишних деталей...
Нетривиальность в том, что схема обслуживания прерывания, не привязанная к битам STATUS,
делает это прерывание RST7 - НЕМАСКИРУЕМЫМ
!
Чего в нашем любимом процессоре К580ВМ80А - в принципе нет. :roll:
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by shoorick »

Lavr wrote:схема обслуживания прерывания, не привязанная к битам STATUS,
делает это прерывание RST7 - НЕМАСКИРУЕМЫМ
т.е., проц на него отреагирует, даже если прерывания запрещены?

меня всегда волновал другой аспект: i8228 при подаче на выход INTA 12В через резюк 1к переходит в режим, когда на сигнал INTA от проца он выдает ему FF - т.е. RST7. т.е. одноуровневый режим прерывания без доп. схем (не считая 8228, конечно). а ведут ли себя онологично наши ВК28/38?
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

shoorick wrote:
Lavr wrote:схема обслуживания прерывания, не привязанная к битам STATUS,
делает это прерывание RST7 - НЕМАСКИРУЕМЫМ
т.е., проц на него отреагирует, даже если прерывания запрещены?
Да! :o Причем отреагирет полюбому! 8) У меня так и происходило пока не подобрал нужное
сочетание сигналов и признак окончания прерывания.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

shoorick wrote: RST7. т.е. одноуровневый режим прерывания без доп. схем (не считая 8228, конечно). а ведут ли себя онологично наши ВК28/38?
По описанию встречается материал, что ведут. Но во всех виданных мной схемах позади
ВК28/38 всё-таки вешают 8 резюков на +5В. :lol:

Сам я не проверял, поэтому дезинформировать не буду.
iLavr
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by shoorick »

надо будет как-нибудь попробовать 8)
Xrust
Junior
Posts: 6
Joined: 06 Aug 2017 08:30

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Xrust »

Lavr wrote: По описанию встречается материал, что ведут. Но во всех виданных мной схемах позади
ВК28/38 всё-таки вешают 8 резюков на +5В. :lol:

Сам я не проверял, поэтому дезинформировать не буду.
Я думал их обычно вешают из-за присутствия ОК на шине данных. Но тоже до конца не уверен. Надо проверить будет.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: i8080: возможно ли реализовать прерывания без доп. обвяз

Post by Lavr »

Lavr wrote:... во всех виданных мной схемах позади ВК28/38 всё-таки вешают 8 резюков на +5В. :lol:
К примеру, вот так:
580вм80_вк38.jpg
Довольно чистенький экземпляр такой схемы...
You do not have the required permissions to view the files attached to this post.
iLavr