Soviet Union ZX Spectrum CommunityСреда, 16.10.2024, 07:21
Вы вошли как Гость | Группа "Гости" | RSS
 [ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Стандарт модернизации оригинального ZX Spectrum
Black_CatДата: Пятница, 09.11.2012, 19:57 | Сообщение # 1
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Стандарт для модернизации оригинального ZX Spectrum.

1. Простое подключение внешних ULA и видео ОЗУ.

Все существовавшие до сих пор способы модернизации оригинального ZX Spectrum предполагают значительные изменения в его схемотехнике, и как следствие требуют наличие достаточной квалификации. Такой подход сдерживает массовое применение нововведений. Я хочу предложить метод отличающийся своей простотой, не требующий квалификации, и поэтому позволяющий применять его массово простыми пользователями.
Суть метода заключается в повышении технологичности процесса модернизации оригинального ZX Spectrum, и состоит из двух составляющих: минимальных изменений внутри компьютера, не требующих квалификации, и готового устройства расширения, подключаемого к краевому разъёму интерфейса ZXBUS.
Речь не идёт о подключении обычной периферии. Предполагается что внешнее устройство расширения заменит частично или полностью внутреннее ОЗУ и ULA ZX Spectrum. Возможность подключения внешней ULA и видео ОЗУ заложена в схемотехнике ZX Spectrum изначально, т.к. его собственная ULA и видео ОЗУ отделены от компьютера по шине данных разделительными резисторами. Единственным ограничивающим фактором до сих пор оставалась особенность тактирования CPU ZX Spectrum, когда тактовая частота процессора останавливается на период до 6-ти тактов из-за конкуренции между CPU и ULA при обращении к видео ОЗУ. Это не позволяет простыми методами согласовать работу внешней ULA и CPU, тактируемого таким образом.

Эту проблему пытались решить ранее . Такое решение не требовало никаких изменений в схемотехнике ZX Spectrum, но при этом было неоправданно ресурсоёмким.

Я предлагаю компромиссное решение, не требующее сложной схемы восстановления тактовой частоты, но требующее незначительного вмешательства в схемотехнику ZX Spectrum, и состоящее в подпаивании к плате компьютера всего одного проводника.
Суть метода состоит в блокировании тактовой частоты процессора от внутренней ULA, и подачу её извне. Для подачи тактовой частоты на процессор извне, предлагается использовать свободный контакт 28B краевого разъёма, который соединяется проводником с входом тактовой частоты CPU. Блокирование тактовой частоты от внутренней ULA производится при подключении платы расширения к интерфейсу ZXBUS путём подачи нулевого уровня на контакт 8A краевого разъёма.


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
Black_CatДата: Пятница, 09.11.2012, 20:08 | Сообщение # 2
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
2. Простое отключение внутреннего ОЗУ.

В ZX Spectrum 48K не существует стандартного способа управления ОЗУ в диапазоне #8000-#FFFF, поэтому расширение памяти по стандарту ZX Spectrum 128K невозможно без вмешательства в схемотехнику компьютера. В отличие от существовавших до сих пор методов модернизации, предлагаемый метод не требует внесения в схемотехнику компьютера значительных изменений, предполагающих наличие достаточной квалификации, и при этом позволяет не только отключать внутреннее ОЗУ в диапазоне #8000-#FFFF, но и переключать его в диапазон #0000-#7FFF.
Суть предлагаемого метода состоит в блокировке сигнала CAS для старших 32K ОЗУ внешним сигналом. Внешний сигнал управления HIRAMBLK подаётся с устройства подключенного к краевому разъёму через его свободную линию 4B. Блокировка старших 32K ОЗУ осуществляется при HIRAMBLK=1. Немаловажно, что при отсутствии управляющего сигнала HIRAMBLK, компьютер работает как обычный ZX Spectrum 48K.
Ниже, для примера, приведена монтажка для ZX Spectrum issue2.
Схема отключения внутреннего ОЗУ выделена красным, схема подачи внешней тактовой частоты на процессор выделена синим.



Ниже приведена схема отключения верхних 32kb внутреннего ОЗУ для клона TK90X:
Прикрепления: 6971533.jpg (165.5 Kb) · 7189992.png (37.1 Kb) · 1732898.png (255.0 Kb)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 09.11.2012, 20:12 | Сообщение # 3
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
Эту проблему пытались решить ранее . Такое решение не требовало никаких изменений в схемотехнике ZX Spectrum, но при этом было неоправданно ресурсоёмким


Не силен в английском а можете намекнуть в чем главная идея статьи


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Пятница, 09.11.2012, 20:43 | Сообщение # 4
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Суть в том, что для получения тактовой частоты 3,5MHz от Спектрума для синхронизации внешних устройств (например ULA+), необходимо эту частоту сначала восстановить, т.к. в оригинальном Спектруме процессор тормозится остановом тактовой частоты на период до 6 тактов. Для этого автор применил хитрую схему восстановления отсутствующих тактов с использованием ФАПЧ, для чего уже потребовалось приенение FPGA. Хотя, как видно из первого поста, проблему можно решить элементарным подпаиванием одного проводка smile . Здесь разница в подходах - кому что проще: поставить FPGA не вскрывая корпус, или вскрыть корпус и подпаять один провод smile .

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 09.11.2012, 20:59 | Сообщение # 5
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
Суть в том, что для получения тактовой частоты 3,5MHz от Спектрума для синхронизации внешних устройств (например ULA+), необходимо эту частоту сначала восстановить, т.к. в


Для этих целей обычно прерывания используют (внешнее устройство формирует импульс который подается на спец. вывод CPU процессор приостанавливается)


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Пятница, 09.11.2012, 21:04 | Сообщение # 6
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Quote (Hazar)
Для этих целей обычно прерывания используют (внешнее устройство формирует импульс который подается на спец. вывод CPU процессор приостанавливается)
Нет, здесь как раз захватывать шину и отключать процессор не требуется, но требуется аппаратная синхронизация внешнего устройства с процессором, это не программная синхронизация с помощью прерываний.
В отличие от оригинального интерфейса ZXBUS, на шине NemoBus например, таких проблем с синхронизацией нет, т.к. :
1) отечественные клоны тормозят процессор не тактовой частотой, а сигналом WAIT/
2) кроме того на шину NemoBus выведена синхронная частота 14MHz, которую можно использовать для синхронизации


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 09.11.2012, 21:18 | Сообщение # 7
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
Нет, здесь как раз захватывать шину и отключать процессор не требуется, но требуется аппаратная синхронизация внешнего устройства с процессором


Вот для этого как раз используется WAIT

Вывод 24- линия ожидания WAIT. “Медленная” память может требовать большего времени для цикла считывания или записи и об этом сообщает микропроцессору путем активизации линии WAIT


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Пятница, 09.11.2012, 21:58 | Сообщение # 8
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Это не тот случай. Для работы внешней ULA нужна синхронизация с CPU по тактовой частоте, а она в оригинальном Спектруме ущербная, с потерянными тактами. Задержка тактов в оригинальном Спектруме обусловлена экономией регистра, в котором сохраняются данные, читаемые процессором. На наших клонах этот регистр есть, и торможение процессора нафиг не нужно. Например в Скорпе торможение с помощью WAIT просто эмулирует торможение процессора в оригинальном Спектруме 48, его можно совершенно безболезненно выкинуть как это и сделано в Пентагоне.

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Пятница, 09.11.2012, 22:43 | Сообщение # 9
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
из-за конкуренции между CPU и ULA при обращении к видео ОЗУ. Это не позволяет простыми методами согласовать работу внешней ULA и CPU, тактируемого таким образом.


(решается установкой дополнительного VRAM статическая память) но для модернизации это да может выглядеть сложно

И вообще я не вижу не каких проблем делается 2 экрана (2 области озу) одна для видео (1 VRAM). Другая для работы процессора
процессор никогда не обращается к VRAM для обновления информации используется мультиплексор с регистром


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Пятница, 09.11.2012, 22:57
 
Black_CatДата: Суббота, 10.11.2012, 01:13 | Сообщение # 10
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Quote (Hazar)
решается установкой дополнительного VRAM

smile в цитате ключевыми словами были
Quote (Black_Cat)
Это не позволяет простыми методами согласовать работу внешней ULA и CPU, тактируемого таким образом.

Т.е. прежде чем что-то устанавливать, надо решить проблему тактирования внешнего устройства smile . Простому решению этой проблемы, без прикручивания FPGA и прочей избыточности, и посвящён первый пост smile . Вопросы как сделать внешнюю ULA в этом топике не затрагиваются smile

Добавлено (10.11.2012, 01:13)
---------------------------------------------
Да, посмотрел немного на изображённую мною схему блокировки верхней памяти, и ещё упростил до подпайки всего одного провода smile Изменения во втором посте.


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Суббота, 10.11.2012, 07:08 | Сообщение # 11
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
Т.е. прежде чем что-то устанавливать, надо решить проблему тактирования внешнего устройства


Имхо у внешних устройств должны быть свои генераторы так будет проще согласовывать

А обмен информацией производится через буфер (регистр защелка или что-то другое)

Quote (Black_Cat)
Вопросы как сделать внешнюю ULA в этом топике не затрагиваются

зачем его вообще делают внутренним я так и не понял


Spectrum жив в нашей душе навсегда
 
Black_CatДата: Суббота, 10.11.2012, 07:52 | Сообщение # 12
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
Quote (Hazar)
Имхо у внешних устройств должны быть свои генераторы так будет проще согласовывать

smile это в первом посте и предлагается, тактовая частота вырабатываемая внутренней ULA блокируется, и на вход CLK процессора подаётся частота с внешнего устройства smile

Quote (Hazar)
зачем его вообще делают внутренним я так и не понял

ULA (Uncommitted Logic Array), отечественнй аналог - БМК (Базовый Матричный Кристалл). В микросхему ULA запихнута добрая половина Спектрума. Внутри ULA находится автомат генерации растра, использующий видеопамять конкурентно с процессором, при том у процессора приоритет ниже. Для того, чтоб получить расширенные видеовозможности, этот автомат надо каким-то образом отключить, и взамен ему подключить внешний, с расширенными возможностями. В первом посте и написано, как проще отключить ULA и внутреннюю видеопамять.:)


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Суббота, 10.11.2012, 08:06 | Сообщение # 13
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
ULA (Uncommitted Logic Array), отечественнй аналог - БМК (Базовый Матричный Кристалл). В микросхему ULA запихнута добрая половина Спектрума. Внутри ULA находится автомат генерации растра, использующий видеопамять конкурентно с процессором, при том у процессора приоритет ниже. Для того, чтоб получить расширенные видеовозможности, этот автомат надо каким-то образом отключить, и взамен ему подключить внешний, с расширенными возможностями. В первом посте и написано, как проще отключить ULA и внутреннюю видеопамять.:)


У вас есть вся схема ULA . Вся эта концепция устарела в корне, сейчас уже можно сделать во много раз лучше


Spectrum жив в нашей душе навсегда

Сообщение отредактировал Hazar - Суббота, 10.11.2012, 08:07
 
Black_CatДата: Суббота, 10.11.2012, 08:37 | Сообщение # 14
Координатор
Группа: Координаторы
Сообщений: 727
Статус: Offline
smile Лучшее - враг хорошего smile , а хорошо то, что в меру и к месту smile

"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
HazarДата: Суббота, 10.11.2012, 10:16 | Сообщение # 15
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
Quote (Black_Cat)
Лучшее - враг хорошего smile , а хорошо то, что в меру и к месту


Хорошо то что не убивает хорошее-старое. Главная концепция (HAZAR)


Spectrum жив в нашей душе навсегда
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2006Сайт управляется системой uCoz