Как заменить ROM в ZX Spectrum на EPROM |
Добавил(а) microsin |
Замена оригинального ПЗУ (ROM) ZX Spectrum на стандартное 28-выводное DIL EPROM (в корпусе DIP28, такое как 16-килобайтное 27C128 или 32-килобайтное 27C256, или их аналоги) очень прямолинейна (приведен перевод статьи [1]). Однако требуются некоторые модификации монтажа печатной платы: 1. С оригинальным Spectrum ROM вывод 1 не используется, но для EPROM этот вывод работает как вывод для подачи высокого напряжения программирования (Programming High Voltage pin): во время нормальной работы EPROM, когда она используется только для чтения, этот вывод 1 должен быть подключен к Vcc (+5V). Вы можете просто припаять провод между выводом 1 и выводом 28 на обратной стороне печатной платы ZX Spectrum. 2. Расположение выводов /ROM_CS и /MREQ отличается для разных EPROM и даже варьируется между используемыми в Sinclair ZX Spectrum оригинальными ROM, так что имеется 4 выбираемые связи на печатной плате Spectrum. Это удобно, поскольку не нужно перерезать другие дорожки, нужно переделать только эти возможные 4 соединения – все сигналы, требуемые в модификации, доступны как точки пайки. По существу Вы должны сделать логический элемент ИЛИ, чтобы из сигналов /ROM_CS и /MREQ сформировать выходной сигнал, который придет на 20 вывод EPROM 20. Этот элемент OR может состоять из диодов и резистора. При этом рекомендуется использовать диоды Шоттки (например BAT85), поскольку на них падает напряжение меньше, чем на обычных кремниевых диодах. Однако, как это известно из экспериментов, обычные диоды 1N4148 тоже работают. Значение для резистора 10K должно хорошо подойти. Примечание: на некоторых платах ZX Spectrum переделка на EPROM была сделана так, что вывод 20 был просто замкнут на /ROM_CS, без формирования логики OR с сигналом /MREQ. Это плохой вариант: вроде Spectrum работает нормально, но появляется проблема с клавиатурой, если программа читает из порта $00fe (например, для детектирования нажатия на клавишу за одну операцию) – данные ROM попадают на шину данных во время такого чтения, конфликтуя с предоставленными через ULA данными от клавиатуры. Одной из программ, где эта проблема проявляется, является "Zynaps" – игра запускается сразу после вывода нескольких титров на экран даже без какого-либо ввода со стороны пользователя. 3. И наконец, нужно подключить вывод 27 EPROM. В случае микросхемы EPROM 27C128 этот вывод должен быть подключен к Vcc. Для 27C256 вывод 27 может использоваться как выбор банка ROM, поскольку у 27C256 память в 2 раза больше (32 килобайта), чем у 27C128 (16 кбайт), и вывод 27 используется как старший сигнал адреса A14. Когда вывод 27 соединен с GND, будет выбран Bank 0 (адреса 0x0000..0x3fff EPROM), и когда он соединен с Vcc, то будет выбран Bank 1 (адреса 0x4000..0x7fff EPROM). Для выбора банка можно использовать переключатель типа SPDT, что позволит иметь в ZX Spectrum 2 версии ПЗУ. Примечание: автор статьи [1] сделал диагностическое ПЗУ, образ которого можно найти и скачать по этой ссылке: http://www.retroleum.co.uk/electronics-articles/a-diagnostic-rom-image-for-the-zx-spectrum/ . [Взаимозаменяемость микросхем 27C64, 27C128, 27C256, 27C512] Все эти микросхемы похожи тем, что имеют аналогичные корпуса и совместимую друг с другом цоколевку. Отличия только в нескольких выводах, назначение которых зависит от объема памяти микросхемы. Ниже на рисунке (взят их даташита на 27C64 компании National Semiconductor) показано соответствие выводов микросхем 27C16, 27C32, 27C64, 27C128, 27C256, 27C512. Например, одну микросхему 27C128 можно заменить на 2 микросхемы 27C64, если напаять их друг на друга бутербродом, оставив не соединенными друг с другом только ножки разрешения выхода /CE. У нижней микросхемы на сигнал /CE нужно подать сигнал от адреса A13 напрямую (это будет младшая половина памяти заменяемой 27C128), а у верхней микросхемы на /CE надо подать A13 через инвертор (это будет старшая половина памяти). Также микросхемы EPROM 27Cxxx можно заменить на совпадающие по цоколевке микросхемы EEPROM 29Cxxx. [Ссылки] 1. How To Replace The ROM Of A ZX Spectrum With An EPROM site:retroleum.co.uk. |