ZX-Spectrum 256K Upgrade

Расширение ZX-Spectrum 48K до 256K по стандарту SCORPION 256

Расширение делается на чипах памяти 41256 (от 286 компьютеров), необходимо заменить РУ5 на данные микросхемы. Выводы 1 соединить вместе, это будет 9-ая адресная линия (MA8).

Рекомендуется использовать микросхемы серии 74HC.

Теперь о схеме порта расширения

256k_upgrade_ay_1ffd_7ffd_3_tmp

Данная схема реализует порты #7FFD, #1FFD для расширения памяти, а так же порты #BFFD, #FFFD музыкального сопроцессора (в качестве которого я использую эмулятор с данного сайта).

Дополнительно в данной схеме используется 6 бит порта #1FFD для переключения дополнительных банков ПЗУ (2 бит переключающий верхние 64К ПЗУ, т.е. ROM3)

Данная схема использует всего 7 микросхем и не дешифрирует порт #FD. При желании, можно добавить его дешифрацию добавив три элемента ИЛИ-НЕ (74LS02N).

Так же, схему легко переделать под другие стандарты расширения, в том числе и 1024Mb.

Подключение схемы к ZX-Spectrum

В первую очередь следует перерезать дорожки с сигналами A14, A15 идущие на мультиплексоры (обычно это микросхема КП11, к которой подходят соответствующие сигналы) и подать на них сигналы A14′ и A15′ вместо A14 и A15.

Затем найти сигнал H1 (на некоторых схемах обозначается DC1, например, в Кворум БК-04), обычно он идет на 15 вывод той же микросхемы, от которой вы отрезали A14 и A15 (и всех остальных КП11).

Далее следует найти точку подключения сигнала SCR (сигнал переключения экранов, да, начиная со 128К версии их в ZX-Spectrum 2 штуки), обычно, это вторая из 4 микросхем КП11 (та от которой вы отрезали A14 и A15 обычно четвертая) и вывод у неё обычно 13, если туда еще что-то подключено — отрезаем и подключаем сигнал SCR (проверьте, чтобы 14-ый вывод шел на +5 вольт, если идет на землю, то переподключите). На схеме компьютера 13 и 14 выводы, это соответственно 4B и 4A микросхемы КП11(она же 74LS257N).

Сигналы A14, A15 берем или там где отрезали или откуда удобнее.

Сигналы /WR, /IORQ, /M1, /RAS, /RESET находим по схеме компьютера.

Сигналы D0-D5(D6,D7 если ставим эмулятор), A1, A9, VCC, GND удобнее взять с панели ПЗУ (особенно, если у вас их 2)

Сигнал MA8 подключаем к 1 выводам микросхем памяти 41256.

Сигналы DOS / EDOS берем с платы контроллера дисковода (если он у вас есть), на некоторых какой-то из них может быть инвертирован, тогда вам не повезло и придется использовать дополнительный инвертор.

Сигналы ROM1, ROM2, ROM3 подаем на выводы ПЗУ A14,A15,A16 соответственно (зависит от того, какого размера у вас ПЗУ, например Flash на 128К как раз имеет данные адресные линии), напомню, что ROM3 это дополнительный сигнал, который я ввел в схему специально, чтобы иметь возможность переключать больше банков ПЗУ, он не стандартизирован и использует неиспользуемый бит порта #1FFD (хотя, по некоторым данным этот бит используется для сигнала строба принтера)!!! Но, зато, позволяет нам разместить дополнительно 4 страницы ПЗУ со всякими командерами и т.д. 🙂 правда для этого придется самостоятельно разрабатывать менюшку (возможно у меня будет время заняться этим).

Вот вроде бы и всё по поводу подключения, если есть вопросы — пишите в коментариях.

PS: чтобы не было глюков, рекомендуется на схему вместо /IORQ подавать такой вот сигнал

iorq_to

это поможет блокировать порты при работе с дисководом и т.д. Вообще, такой сигнал должен быть в схеме где-то возле дешифратора порта #FE

Не забудьте сделать блокировку записи в нулевую страницу, а то половина программ будет вылетать

Blk0

Плата

Помучившись немного с МГТФом и отладочными платами я всё-таки решил изготовить плату под это дело для втыкания в панель ПЗУ. Что в итоге получилось — смотрите сами.

Плата

Пока что заказал изготовление, буду ждать, посмотрим что получится, по результатам сообщу подробнее.

В данной плате используется альтернативная версия эмулятора с 5 и 6 битами данных замененными друг на друга (для корректного определения в тестах). Всё-таки рекомендую поменять их обратно, т.к. прошивка с заменой бит работает медленнее, а детектирование чипа и режим чтения работают отлично с последними прошивками AY эмулятора. Можно порезать дорожки и переподключить, а можно переразвести плату, это не сложно, удалить связи и переразвести автотрейсером. Будет время, переделаю.

 

Кому интересно, выкладываю файлы данной платы

Комплект файлов для изготовления на сайте iteadstudio.com

Комплект файлов

Схема для DipTrace PCB Layout 256K_PCB

Плата с монтажной областью

Плата2

Возможно кто-то захочет что-то подправить в схеме под свои нужды, чтобы не городить огород, добавил небольшое монтажное поле, но тем не менее, всё вписывается в размеры 10х5 сантиметров

Комплект файлов

Подтверждение того, что это работает 🙂

WP_20141015_005

Продолжение

Наконец-то я получил платы, спаял, подключил и на удивление, всё с первого раза заработало!!!

Во-общем, схема и плата полностью работоспособны, можно повторять. Еще напомню, не забудьте заблокировать запись в нулевую страницу либо задействуйте нулевой бит порта #1FFD.

Как обещал, выкладываю картинку уже вставленной в ZX платы 🙂

pcb_in_zx

ROM прошивка ПЗУ

пока что сделал прошивку для 64К (ROM3 не используется, на A16 микросхемы ПЗУ подан 0)

ROM.ZIP

В прошивке расположены (две прошивки)

0) Basic128 в котором первый пункт выбирает Quick Commander 3.05 /3.11 (вторая прошивка)

1) Basic48 (версия 2006 года)

2) Quick Commander 3.05 /3.11 (вторая прошивка)

3) TR-DOS 6.04

Quick Commander выбирается записью единицы в первый бит порта #1FFD из пропатченной ROM Basic128

Теоретически можно использовать 128 К ROM  (дополнительные 64К) выбирая 6-ой бит порта #1FFD, но у меня пока что нет времени с этим возиться 🙂 Если будет время сделаю какую-нибудь менюшку для выбора 4,5,6,7 страниц ПЗУ или может еще кто возьмется за это дело.

 

Сделал еще один ром, который использую сейчас

ROM2.ZIP

Зашил в W27C512-45 (45ns!!!), данная микросхема имеет 28 ног и может вставляться в стандартный разъем ПЗУ, правда нужно подвести к ней ROM1 и ROM2

Содержимое:

0) Basic128 в котором первый пункт выбирает Real Commander

1) Basic48 (версия 2006 года)

2) Real Commander 1.96 HDD

3) TR-DOS 6.04 (хоть я и расширил память до 1024К, но с 1024К TR-DOS 6.11Q глючат некоторые программы, а RC таки дает использовать рам диск размером с дискету)

До 1024К в Кворум БК-04 расширял по схеме отсюда

PS: Внимание! По результатам использования данной схемы обнаружились глюки с некоторыми микросхемами FLASH используемыми для ROM, компьютер зависает и т.д., например, у меня стояла P28F001 90-го года, с ней всё глючило, подбирал разные микросхемы для данной схемы, с некоторыми глючило меньше, но всё-равно висло иногда, после замены на AT29F010A все глюки пропали, так что микросхемы можно ставить любые, хоть HC, хоть LS.

ZX-Spectrum 256K Upgrade: 17 комментариев

      1. 1. I recommend you to use emulator 3 channel version instead of AY-3-8912, just as is, place it on PCB or breadboard and connect to ZX as AY-3-8912 according to pinout.
        2. It’ll be better if you describe your model, because connection of memory expander is different on different models. If your model use ULA it is probably difficult to increase memory, because all logics is inside the ULA.

  1. Спасибо, успешно расширил память кворум 64 по данной схеме
    вот только не определяется музыкальный чип, при этом он работает, но на чтение недоступен
    это нормально или у меня где то косяк?

  2. Здравствуйте. Сделал расширение ленинград-1 до 256k.Тест проходит. Тот же что и на фото в статье,но зависает на system configuration. Resident:… и все, висит.. И ещё, после сброса часто на экране бывает мусор, нажмёшь ещё раз reset бывает выходит в меню :basic 128,tape loader… т. д. А бывает выскакивает сразу в basic48.. Подскажите, где копать?

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

Добавить комментарий для all1976 Отменить ответ

Ваш адрес email не будет опубликован.