История такова. Был у меня Экспресс. Я его помаленьку грейдил, но в итоге время взяло своё - плата стала рассыпаться и он умер. Вот последнее фото, которое я успел сделать, когда он ещё работал:
В общем и целом, я какое-то время побыл без реального Спеца. А потом решил, что пора сделать ему замену. При этом, я помню, что на кружке были игры от SP580, которые были адаптированы под Экспресс и работали, даже с фирменной загрузкой экрана. Но я хотел пойти дальше и оценить софт для SP-580 в родном для него окружении, так родился проект гибрида. Так как старый Экспресс должен был послужить донором, то выбор процессора, ОЗУ и портов ввода-вывода не стоял. Но плату хотелось сделать по-проще, поэтому решил использовать EPM7128 в корпусе PLCC84. Спроектировал, нарисовал и отправил на изготовление.
Приехала плата, собрал её.
Пока ехала плата пописывал прошивки для CPLD. Отлаживал сначала на симуляторе в самом Quartus'е. Когда приехала плата продолжил отладку на живом экземпляре. В итоге всё работает как задумано. А задумано оно следующим образом.
Первая плисина, что стоит у ОЗУ, является, собственно, контроллером памяти. Она, по сути, только генерирует тайминги для всей схемы, работает с ОЗУ и формирует изображение на видеовыход. В этом гибриде цвет не предусмотрен, т.к. в Экспрессе и SP-580 он не был изначально. Эта же плисина формирует инверсные сигналы фаз тактирования для КР580ВМ80А по стандартной схеме формирования 12в импульсов а так же формирует 500кГц для генератора -5в. Плата требует +5в и +12в, как и Экспресс, ведь она предназначается для замены Экспресса и соответствующий блок питания там уже есть. А ещё, контроллер ОЗУ формирует ТТЛ сигналы F1 и F2 процессора, которые идут в контроллер устройств. На F2 удобно синхронизировать сигналы, а F1 позволит вытаскивать слово состояния процессора для расширенной адресации, если это мне понадобится. Просто потому что ПЛИС и свободные ноги. Кстати, первый вывод у ОЗУ так же разведён в ПЛИС и использовать РУ7/42256 можно. Т.е., организовать 256КБ без проблем, но повторюсь, в оригинальных машинах было только 64КБ (48КБ доступной).
Вторая плисина это маппер устройств. В ней реализованы оба маппера для режима Экспресс и SP-580. Так же там реализован контроллер SPI, причём, он на медленных скоростях способен тормозить процессор через сигнал RDY, что позволит упростить и ускорить процедуру обмена данными по SPI. Так же этот маппер соединяет системный ППА и таймер ВИ53, который есть в SP-580, согласно схемы этого компьютера. И при этом аппаратно изолирует его в режиме Экспресс, исключая необходимость обязательного его заглушения в этом режиме. Я использовал FLASH в корпусе DIP32 для организации ROM диска. С этого же диска стартует гибрид. В обоих конфигурациях ПЗУ может быть подключено как одна из 16 страниц в первые 32КБ (16 страниц для 512КБ FLASH). В ней можно хранить дополнительно какой-либо софт, причём он может работать из нее а само ПЗУ может быть обновлено самим процессором - все сигналы заведены. Так же в ПЛИС маппера есть регистр защиты от записи 8 верхних областей ОЗУ с шагом по 2КБ (C000,C800,D000,D800,E000,E800,F000,F800) для имитации ПЗУ. При старте содержимое оригинальных ПЗУ копируется с ROM диска по своим адресам (C000-C7FF и F800-FFFF для режима SP-580 или в C000-CFFF для Экспресса) и включается блокировка записи. При этом неиспользуемые области по умолчанию не защищены от записи (как и имеющееся оборудование) и если там нет оборудования согласно мапперу то там кусок ОЗУ, которое так же можно использовать.
Использование ПЛИС позволило реализовать детектор холодного пуска. Как работает запуск этого гибрида опишу ниже. При включении (подаче питания) у ПЛИС взводится флаг CLD. Загрузчик его анализирует и принудительно запускает выбор режима. Экран выбора режима выглядит вот так:
При нажатии на пробел стрелочка меняет своё направление, показывая на выбранный режим. Нажатие на ВК запускает выбранный режим. Теперь, если нажимать сброс, то гибрид будет автоматически запускать именно выбранный режим и таким образом работа на нём не будет отличаться от работы на оригинальном компьютере. Но если нажать на сброс зажав при этом шифт, то можно вызвать выбор режима не выключая питание. Работа в самих режимах абсолютно ничем не отличается от работы на оригинальных компьютерах при использовании соответствующих образов ПЗУ.
На данный момент это всё. Это пока что доказательство концепта и рабочий прототип. Я хочу продумать варианты загрузчика, возможно будет выбор необходимого образа ПЗУ, в том числе и с карты, как это было мной сделано уже считай почти 10 лет назад. Есть конкретные сомнения по видеовыходу, который ещё надо подобрать и привести к полному стандарту, чтобы его брали все устройства без проблем. Магнитофонный компаратор тоже требует адаптации, ну и прочие детские болезни. Все нюансы, вопросы и предложения предлагаю обсудить. Так же есть десяток пластинок, которые были в составе заказа плат, если кому интересно.
После доведения устройства до нормального состояния к повторению вся инфа будет выставлена здесь и/или на гите. У меня пока всё.