Картинки я, конечно, посмотрел, и даже посмотрел в скачанную книгу Шахнова и в свои бумажные книги. При всём обилии описаний всё же они не всеохватны
Порты vs память, слово состояния и т.д.
Moderator: Lavr
-
VituZz
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Понятно, что три /INTA будут лишь, если первый полученный КОП будет CALL. В случае полученного КОП RST - тоже всё ясно. Гипотетический случай получения какого-то другого КОП - я думаю, просто выполнится данная команда.
Картинки я, конечно, посмотрел, и даже посмотрел в скачанную книгу Шахнова и в свои бумажные книги. При всём обилии описаний всё же они не всеохватны
. Тем не менее, с коллективной помощью вопрос для меня прояснился, спасибо!
Картинки я, конечно, посмотрел, и даже посмотрел в скачанную книгу Шахнова и в свои бумажные книги. При всём обилии описаний всё же они не всеохватны
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
А вот в связи с прецизионными эмуляторами я призадумался...HardWareMan wrote:Между прочим, КОП может быть абсолютно любым. К примеру, можно подать LDA XXXXH и с каждым прерыванием в аккумулятор будет грузиться какое-то значение с адреса. А если подавать MVI B,XXH - то загружать своим значением.VituZz wrote:Понятно, что три /INTA будут лишь, если первый полученный КОП будет CALL. В случае полученного КОП RST - тоже всё ясно. Гипотетический случай получения какого-то другого КОП - я думаю, просто выполнится данная команда.
Скажем идёт у нас программа:
100 LXI H,0000H
103 DAD SP
>--------------------- в этот момент по прерыванию: LDA 8730H
104 SHLD SP_B0X
107 LXI B,1574H
...
Что будет с программным счётчиком РС по такому прерыванию?
Или просто выходит что между адресами 103 и 104 мы как бы
всунули лишнюю команду посредством прерывания?
iLavr
-
b2m
- Devil
- Posts: 927
- Joined: 26 May 2003 06:57
Никто там "пуш РС" не делает, скармливают CALL/RST, которые и делают всю работу по вызову п/п. Единственная разница - при чтении команды в цикле обработки прерывания РС не увеличивается (и даже вроде на шину адреса не выводится).HardWareMan wrote:А JMP/RST скармливаются потому, что размер обработчиков как правило больше одной команды. Только, ЕМНИП, надо помнить, что подтверждение прерывания происходит только на одну команду, поэтому, либо прерывание из одной команды, либо джамп. Хотя, если внимательно почитать ДЩ, перед вызовом прерывания делается пуш PC, т.е. CALL.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
Кстати говоря, наиболее верно и без лишней заумной бредятины
процесс обработки прерывания описывают в часто критикуемом мной "ЮТ-88":
"Единственный вектор прерывания с номером 7 без дополнительных компонентов"
задаёт не микросхема системного контроллера а 8 резисторов по ШД, подключенных к +5В.
Схема
Если мы подключим эти 8 резисторов по 1К к общему проводу ("0"), то получим
"единственный вектор прерывания с номером 0 без дополнительных компонентов".
Микросхема системного контроллера в этом случае лишь шинный двунаправленный
буфер, который 1111.1111b c ШД передаёт процу. Но в итоге-то обходятся и без неё!
И я не знаю, есть ли смысл "выход INTA микросхем KP580BK38 ... подсоединять
к напряжению + 12 В через резистор 1 кОм" - всё-равно выход не используется.
Хуже, правда, не будет...
процесс обработки прерывания описывают в часто критикуемом мной "ЮТ-88":
Но опять же есть неточности.При работе с микропроцессором К580ВМ80А системный контроллер в цикле подтверждения
запроса прерывания формирует три сигнала INTA для приема трех байтов команды CALL
от контроллера прерывания (если он есть).
В небольших микропроцессорных системах выход INTA микросхем KP580BK38 можно подсоединять
к напряжению + 12 В через резистор 1 кОм. Во время действия сигнала RC буферная шина данных
микросхемы формирует код команды RST7 и передает его на канал данных микропроцессора.
Таким образом, микросхема - единственный вектор прерывания с номером 7 без дополнительных
компонентов.
"Единственный вектор прерывания с номером 7 без дополнительных компонентов"
задаёт не микросхема системного контроллера а 8 резисторов по ШД, подключенных к +5В.
Схема
Если мы подключим эти 8 резисторов по 1К к общему проводу ("0"), то получим
"единственный вектор прерывания с номером 0 без дополнительных компонентов".
Микросхема системного контроллера в этом случае лишь шинный двунаправленный
буфер, который 1111.1111b c ШД передаёт процу. Но в итоге-то обходятся и без неё!
И я не знаю, есть ли смысл "выход INTA микросхем KP580BK38 ... подсоединять
к напряжению + 12 В через резистор 1 кОм" - всё-равно выход не используется.
Хуже, правда, не будет...
Last edited by Lavr on 20 Sep 2012 06:48, edited 1 time in total.
iLavr
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
А моё лично мнение, что сигнал INTA правильно формируется в "Микро-80":

Потому, что сигнал INTA - это не что иное, как сигнал DBIN микропроцессора,
через состояние бита 0 регистра статуса ("Обслуживание прерывания")
перенаправленный к устройству, обязанному по типу памяти выдать микропроцессору
команду, выполняемую во время обслуживания прерывания.
То есть, как процессор читает из памяти CALL ADLOW ADHIGH, также он читает
эту последовательность байт CALL ADLOW ADHIGH из ПКП КР580ВН59.
Но строб DBIN перенаправляется к ПКП КР580ВН59 в виде INTA,
а на шине адреса ничего не выставляется.
Если вы со мной согласны, то картинку из предыдущего поста мне надо будет исправить,
и везде по форуму заменить на правильную.
Это я её притащил откуда-то из сети, не посмотрев внимательно.
Правильная картинка вот такая:


Потому, что сигнал INTA - это не что иное, как сигнал DBIN микропроцессора,
через состояние бита 0 регистра статуса ("Обслуживание прерывания")
перенаправленный к устройству, обязанному по типу памяти выдать микропроцессору
команду, выполняемую во время обслуживания прерывания.
То есть, как процессор читает из памяти CALL ADLOW ADHIGH, также он читает
эту последовательность байт CALL ADLOW ADHIGH из ПКП КР580ВН59.
Но строб DBIN перенаправляется к ПКП КР580ВН59 в виде INTA,
а на шине адреса ничего не выставляется.
Если вы со мной согласны, то картинку из предыдущего поста мне надо будет исправить,
и везде по форуму заменить на правильную.
Это я её притащил откуда-то из сети, не посмотрев внимательно.
Правильная картинка вот такая:

iLavr
-
Digi_boy
- Fanat
- Posts: 51
- Joined: 30 Apr 2012 09:38
- Location: Krasnodar
В чем смысл задержки сигнала DBIN двумя инверторами (DD3.2 и DD3.4) ?Lavr wrote: сигнал INTA - это не что иное, как сигнал DBIN микропроцессора
Как бы увидеть осциллограммы формирования сигнала INTA в этой схеме, что бы слегка понятнее было по поводу относительных задержек.
Last edited by Digi_boy on 21 Sep 2012 04:46, edited 1 time in total.
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
Можно живьём - осциллографом, если собрать схему...Digi_boy wrote:Как бы увидеть осциллограммы формирования сигнала INTA в этой схеме,Lavr wrote: сигнал INTA - это не что иное, как сигнал DBIN микропроцессора
что бы слегка понятнее было по поводу относительных задержек.
А можно по типовым графикам машинных циклов нарисовать.
Хардыч часто их выкладывает, и на форуме есть ссылка на книжку, где они
представлены.
Ну и придётся приплюсовать к DBIN типичные времена задержек
распространения для трёх вентилей серии К155.
iLavr
-
Digi_boy
- Fanat
- Posts: 51
- Joined: 30 Apr 2012 09:38
- Location: Krasnodar
Одним словом, в журнале "Радио" за 1983 год можно не копаться,Lavr wrote:Можно живьём - осциллографом, если собрать схему...
А можно по типовым графикам машинных циклов нарисовать.
Хардыч часто их выкладывает, и на форуме есть ссылка на книжку, где они
представлены.
Ну и придётся приплюсовать к DBIN типичные времена задержек
распространения для трёх вентилей серии К155.
осциллограмм там никто не приводил. Голое словесное описание.
-
Lavr
- Supreme God
- Posts: 16804
- Joined: 21 Oct 2009 08:08
- Location: Россия
Ну почему же... смотря, что хочешь накопать... Задержек по корпусам там никто не рисовал,Digi_boy wrote:Одним словом, в журнале "Радио" за 1983 год можно не копаться, осциллограмм там никто не приводил.
Голое словесное описание.
но вот типовые графики машинных циклов там приведены, расписаны очень подробно и
популярно разъяснены.
Вот эти графики из как раз из журнала "Радио" за 1983 год.

iLavr


