User Tag List

Показано с 11 по 20 из 20

Тема: Как в Z80 использовать регистр I в качестве порта вывода

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как в Z80 использовать регистр I в качестве порта вывода

    У Z80 есть одно, практически неиспользуемое свойство, используя которое, можно без существенных затрат деталей (что важно для простейших контроллеров, где число корпусов менее 10), получить 8-ми разрядный порт на вывод.

    Мало кто знает, что в тактах RFSH процессор Z80 выдаёт на старшую половину шины адреса содержимое регистра прерываний I. Так что, если сигналы шины адреса A8...A15 "защёлкивать" по стробу /MREQ в тактах регенерации, то получается 8-ми разрядный выходной порт. Это эквивалентно тому, как бы в процессор добавили 8 дополнительных выходных линий, адресуемых непосредственной адресацией, причём шина данных даже не нагружается входами доп.порта.

    Аппаратно это выливается в один вентиль из 1533 ЛЛ1 и, естественно, регистр-защёлку типа 1533 ИР23 или ИР27 (или ИМС с меньшей разрядностью, например ТМ2, срабатывающие по прямому фронту). Программно, всё, что процессор запишет в регистр I, после ближайшего такта регенерации (а он будет уже в этой же или в следующей команде Z80) появится на выходе регистра ИР23. Для простого контроллера это то, что надо. Выигрыш тройной: по деталям, скорости прогона и расходу байтов на программу. Недостаток - потеря прерываний в MODE 2.

    В простом контроллере это можно использовать для вывода звука или вывода в линию. Можно этим портом управлять режимом (например экрана) в компьютере. Но гораздо полезнее задействовать этот дополнительный порт, как бы встроенный в процессор, для управления диспетчером памяти (в простейшем случае, просто для переключения банок).

    Я не встречал в литературе подобного использования регистра I. Может быть кто-нибудь знает почему это плохо или вообще невозможно.
    Последний раз редактировалось barsik; 20.08.2017 в 21:26.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее: 15.07.2018, 23:17
  2. Ответов: 31
    Последнее: 08.08.2014, 23:47
  3. Как использовать BZither?
    от goblinish в разделе Софт
    Ответов: 4
    Последнее: 11.03.2012, 17:48
  4. Что используете в качестве CORE при впихивании Z80 в FPGA
    от Vladimir Kladov в разделе Несортированное железо
    Ответов: 5
    Последнее: 16.01.2007, 01:52

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •