ZX81 External EPROM — это проект внешнего интерфейса мульти-ПЗУ (MultiROM) на базе EEPROM W27C512, позволяющий использовать обновлённые версии ПЗУ ZX81 без необходимости вскрывать компьютер для замены внутреннего ПЗУ.
Основная цель: дать возможность запускать модифицированные или альтернативные ПЗУ (например, SPonZY — превращающий ZX81 в ZX Spectrum) без пайки и модификации оригинального ZX81.
Прототип (Prototype)
Всё началось с макетной платы и множества проводов. Концепция оказалась работоспособной: с этим PoC можно запустить ZX81 с внешним ПЗУ, не вскрывая компьютер. Однако оригинальное ПЗУ внутри ZX81 всё ещё необходимо — из-за того, как устроена система отображения графики на ZX81.Версия 1.0 (базовая)
Базовая версия. Требует наличия оригинального ПЗУ внутри ZX81 (из-за особенностей работы дисплея).BOM для v1.0:
- WINBOND W27C512 EEPROM
- 74LS138
- 3× резистор 10 кОм
- BC549 транзистор
- 2× 100 нФ керамический конденсатор (2.5 мм)
- DIP-переключатель 3×ON-OFF
- Сокеты для микросхем, краевой разъём для ZX81 (RM 2.54)
Планируемые изменения для версии 1.1
| Изменение | Описание |
|---|---|
| Резисторы | Шелкография указывает 4.7 кОм, но с WINBOND их можно заменить на 10 кОм |
| Порядок DIP-переключателей | Слева направо A13, A14, A15 — но должно быть наоборот, чтобы соответствовать двоичному шаблону и номеру банка в EEPROM |
| Поддержка 16 КБ ПЗУ | Необходима для запуска SPonZY (модифицированное ПЗУ ZX Spectrum для работы на аппаратуре ZX81) |
| Поворот микросхем на 180° | Чтобы текст читался в правильном направлении (не важно, но для эстетики) |
Версия 1.2 (финальная, близкая к завершённой)
Изменения от версии 1.1:- Контактные площадки (PADS) удлинены на 2 мм (предотвращение проблем с некоторыми разъёмами при использовании в плате расширителя)
- Изменено с подтяжки к питанию (pull-up) на подтяжку к земле (pull-down), чтобы соответствовать фактическому поведению DIP-переключателя (вверх = 1/ON/HIGH, вниз = 0/OFF/LOW)
- DIP-переключатель 4×ON-OFF (вместо 3×)
Инструкции по использованию
| Переключатель | Положение | Описание |
|---|---|---|
| DIP-4 (правый) | DOWN (OFF) = использование банков 8 КБ | Режим работы |
| UP (ON) = использование банков 16 КБ | ||
| DIP-1 … DIP-3 | Выбор банка | Для 16 КБ банки DIP-3 (A13) игнорируется |
Как создать образ для EEPROM
W27C512 может содержать 8× 8 КБ или 4× 16 КБ образов.Для Windows:
Код:
COPY /B ROM_0+ROM_1+ROM_2+ROM_3 IMAGE.BIN
Для Unix/Mac:
Код:
cat ROM_0 ROM_1 ROM_2 ROM_3 >IMAGE.BIN
Соответствие переключателей банкам (8 КБ режим, DIP4 = OFF/DOWN):
| A15 | A14 | A13 | Банк |
|---|---|---|---|
| OFF | OFF | OFF | 0: ROM_0 |
| OFF | OFF | ON | 1: ROM_1 |
| OFF | ON | OFF | 2: ROM_2 |
| OFF | ON | ON | 3: ROM_3 |
| ON | OFF | OFF | 4: ROM_4 |
| ON | OFF | ON | 5: ROM_5 |
| ON | ON | OFF | 6: ROM_6 |
| ON | ON | ON | 7: ROM_7 |
Соответствие переключателей банкам (16 КБ режим, DIP4 = ON/UP):
| A15 | A14 | A13 | Банк |
|---|---|---|---|
| OFF | OFF | — | 0: ROM_0 |
| OFF | ON | — | 1: ROM_1 |
| ON | OFF | — | 2: ROM_2 |
| ON | ON | — | 3: ROM_3 |
Специальные ПЗУ
| ПЗУ | Описание | Инструкция |
|---|---|---|
| SPonZY (16 КБ) | Превращает ZX81 в ZX Spectrum (без цвета и звука). Единственное известное 16 КБ ПЗУ | Положите ROM-файл в EPROM, установите DIP-4 в ON/UP, включите ZX81 |
| Timex Store Demonstrator ROM | Требуется специальная сборка (ZX81 ROM v2 + DemoStore ROM) с модификацией байта 0x09DB с 0x40 на 0x20. Команда запуска: RUN | |
| Memotech MemoCalc | 4 КБ ПЗУ, размещается в верхней 4 КБ зеркальной области. Команда запуска: RAND USR 13824 | |
| TS 1510 Command Cartridge Player | Для 8 КБ картриджа: ZX81 ROM v2 + ROM картриджа. Команда запуска: RAND USR 8192 (с ПЗУ TS1500 может запускаться автоматически) | |
| ASDIS (Assembler/Disassembler) | 8 КБ ПЗУ. Команда запуска: RAND USR 8192 |
Автозагрузка (AUTO RUN) P-файла с ленты
Возможно создать конфигурацию, при которой ZX81 загружается и автоматически запускает файл с ленты (концепция на основе работы Wilf Rigter). Подробнее в папке autorun.Также доступен инструмент ZX81 External EPROM Builder для создания необходимого ROM-файла для записи в EPROM (поддерживает несколько P-файлов, пока помещаются в 8 КБ, с меню выбора программы).
Файлы для загрузки
| Название файла / Папка | Описание | GitHub | Yandex.Диск |
|---|---|---|---|
| Gerbers (папка) | Gerber-файлы версии v1.2 | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| ZXINFO_FOOTPRINT.pretty (папка) | Пользовательские посадочные места (footprints) для KiCad | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| autorun (папка) | Файлы для автозагрузки (концепция Wilf Rigter) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| zx81-external-eprom-v1.1.zip | Архив проекта версии v1.1 | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| zx81-external-eprom-v1.2.zip | Архив проекта финальной версии v1.2 | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| zx81-external-eprom-v1.zip | Архив проекта версии v1.0 | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| zx81-external-eprom.kicad_pcb | Файл печатной платы KiCad (v1.2) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| zx81-external-eprom.kicad_sch | Принципиальная схема KiCad (v1.2) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| ZXINFO_SYMBOL.kicad_sym | Библиотека символов KiCad | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| sym-lib-table | Таблица библиотек символов | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| fp-lib-table | Таблица библиотек посадочных мест | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| Скачать все файлы | Все файлы находятся в одном архиве | Ссылка на GitHub | Ссылка на Яндекс.Диск |
Полезные ссылки проекта:
- Библиотека символов и посадочных мест ZXInfo для KiCad — GitHub
- Инструмент ZX81 External EPROM Builder — ссылка в репозитории
- Репозиторий проекта — GitHub