Поскольку я тут несколько дней занимался программированием на ассемблере под процессором 6502,
я у себя на диске различную справочную информацию по 6502 и всему с ним связанному просматривал...
И нашел я одну статеечку весьма интересную, которую раскопал где-то очень давно, но толком не было возможности
её толком прочитать и разобраться.
Но в этот раз я её не только прочитал, но и сделал перевод.
Суть в следующем: микропроцессор 6502 не имеет отдельных инструкций для работы с устройствами
ввода-вывода. Он работает с ними как с ячейками памяти. И из-за этого порой трудно получить крупные линейные
адресные пространства, даже если переключать банки памяти.
Да и любимый наш К580ВМ80 без серьёзной аппаратной поддержки команды IN и OUT выполняет тоже в пространство
памяти.
Процессоры 1801ВМ1,2 также отдельного пространства УВВ не имеют...
Так вот идея, которую рассматривают в статье, заключается в том, чтобы неиспользуемые команды процессора
отслеживать аппаратно и использовать как специфическое устройство вывода, которое не находится в адресном
пространстве процессора.
Для микропроцессора 65C02 такие команды исполняются как быстрый NOP, и на программу и состояние памяти
они не влияют.
Но если отследить эти команды по характерным для группы команд битам, можно защелкнуть код операции и
использовать такое устройство как порт вывода.
Схема весьма проста:
И на мой взгляд такое решение просто идеально для коммутации банков памяти, потому как в карте памяти
это устройство не занимает ни одной ячейки!
Автор пишет, что и очень быстрый SPI можно так реализовать, и еще ряд решений...
Все подробности - в статье ниже:
Ultra-fast output port 65C02
Moderator: Lavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Ultra-fast output port 65C02
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Ultra-fast output port 65C02
Мне, честно говоря, в связи с этими процессорами озвученная выше идея показалась интересной.Lavr wrote:Процессоры 1801ВМ1,2 также отдельного пространства УВВ не имеют...
Процессоры мощнее нашего любимого К580ВМ80, а памяти маловато им - всего-то 32 кСлов.
И часть отъедают УВВ...

А если команду обращения к УВВ предварять вот таким фиктивным префиксом, то можно вынести
УВВ из пространства памяти.
Т.е. фиктивный префикс переключает стробы чтения и записи из памяти к УВВ на одну следующую команду.
Да, это выглядит медленнее... но УВВ и так медленные сами по себе...
iLavr