Ultra-fast output port 65C02

MOS Technology / Commodore / Apple II / NES etc.

Moderator: Lavr

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

Ultra-fast output port 65C02

Post by Lavr »

Поскольку я тут несколько дней занимался программированием на ассемблере под процессором 6502,
я у себя на диске различную справочную информацию по 6502 и всему с ним связанному просматривал...

И нашел я одну статеечку весьма интересную, которую раскопал где-то очень давно, но толком не было возможности
её толком прочитать и разобраться.
Но в этот раз я её не только прочитал, но и сделал перевод.

Суть в следующем: микропроцессор 6502 не имеет отдельных инструкций для работы с устройствами
ввода-вывода. Он работает с ними как с ячейками памяти. И из-за этого порой трудно получить крупные линейные
адресные пространства, даже если переключать банки памяти.

Да и любимый наш К580ВМ80 без серьёзной аппаратной поддержки команды IN и OUT выполняет тоже в пространство
памяти.

Процессоры 1801ВМ1,2 также отдельного пространства УВВ не имеют...

Так вот идея, которую рассматривают в статье, заключается в том, чтобы неиспользуемые команды процессора
отслеживать аппаратно и использовать как специфическое устройство вывода, которое не находится в адресном
пространстве процессора.

Для микропроцессора 65C02 такие команды исполняются как быстрый NOP, и на программу и состояние памяти
они не влияют.
Но если отследить эти команды по характерным для группы команд битам, можно защелкнуть код операции и
использовать такое устройство как порт вывода.

Схема весьма проста:
Ultra-fast_65c02_output_port.gif
И на мой взгляд такое решение просто идеально для коммутации банков памяти, потому как в карте памяти
это устройство не занимает ни одной ячейки!

Автор пишет, что и очень быстрый SPI можно так реализовать, и еще ряд решений...

Все подробности - в статье ниже:
Ultra-fast output port 65C02.zip
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Ultra-fast output port 65C02

Post by Lavr »

Lavr wrote:Процессоры 1801ВМ1,2 также отдельного пространства УВВ не имеют...
Мне, честно говоря, в связи с этими процессорами озвученная выше идея показалась интересной.
Процессоры мощнее нашего любимого К580ВМ80, а памяти маловато им - всего-то 32 кСлов.
И часть отъедают УВВ... :neutral:

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