Speccy 2007 — это клон ZX Spectrum 48, выполненный в духе минимализма. Функции ULA реализованы в CPLD
EPM7128SLC84. Предусмотрены вход PS/2 для клавиатуры, слот для SD/MMC карты (загрузка TZX, TAP, SNA) и выходы RGB + звук на SCART-телевизор. Подключение другой периферии (магнитофон, дисковод, джойстик) не предусмотрено. Питание — от внешнего источника 5В.
Данная версия схемы отличается от оригинальной версии с 128 КБ памяти и TR-DOS использованием одной микросхемы памяти вместо двух.
Файлы для загрузки
Функциональные клавиши
| Комбинация | Функция |
|---|
| L.Ctrl + R.Ctrl | Сброс (reset) |
| L.Ctrl + R.Alt | Смена прошивки (ROM1 = 0 / ROM1 = 1) |
| F1 / F2 | Вкл/выкл режима "tape_precise" (корректировка длительности импульсов при загрузке TAP/TZX). При старте режим выключен. |
| F3 / F4 | Выкл/вкл режима "nowait" (генерация WAIT при опросе порта 0xFE только при нажатой клавише или загрузке). При старте режим включён. |
| F5 / F6 | Вкл/выкл режима "sinclair_joystick" (стрелки + L.Ctrl эмулируют Kempston + Sinclair). При старте режим выключен. |
| F9 (или Pause/Break) | Пауза |
| F11 | Отгрузка снэпшота (snap01.sna...snap99.sna) в корень SD карты |
| F12 | NMI (с прошивкой 48_sydpatch.rom загружает boot.sna с корня карты) |
| + (плюс) | Старт загрузки выбранного TAP/TZX на нормальной скорости |
| - (минус) | Остановить/возобновить загрузку |
| Enter (на цифровой клавиатуре) или **** | Старт загрузки на удвоенной скорости (для прошивки 48_TURBO.ROM) |
| L.Shift | CS |
| R.Shift | SS |
| Стрелки на цифровой клавиатуре | CS + 5,6,7,8 |
| Backspace | CS + 0 |
| Стрелки + L.Ctrl | Эмуляция джойстика |
Загрузка программ
- Нажмите F12 → AVR даёт NMI → прошивка через порт 0x1F грузит с карты boot.sna
- boot.sna позволяет выбрать для загрузки TAP, TZX или SNA
- Если выбран SNA — загрузка сразу
- Если выбран TAP/TZX — происходит сброс, затем набираете LOAD "", потом для включения "плёнки" нажмите +, для выключения −
Отгрузка снэпшота
Нажмите
F11 → AVR открывает файл на карте и даёт NMI → прошивка через порт 0x1F скидывает дамп. Для работы необходимо, чтобы регистр SP использовался по назначению, и в стеке было 2 байта для сохранения PC. При загрузке/отгрузке снэпшотов будут испорчены 32 байта экранной области (нижняя строка, адреса 0x57E0–0x57FF).
Запись TAP
Для записи TAP нужно сигнал tape_out с CPLD завести на AVR и доработать прошивку AVR (но не факт, что влезет в Mega16).
Команды мини-шела (в boot.sna)
| Команда | Действие |
|---|
| Стрелки + Enter | Выбор и загрузка программ с карты |
| SS + d | Удалить файл |
| SS + r | Переименовать файл |
История версий
| Версия | Изменения |
|---|
| 1.00 | Первая стабильная версия |
| 1.01 | Много изменений в VHDL коде — улучшена стабильность на разных процессорах |
| 1.02 | Добавлена выгрузка снэпшотов. Используется немодифицированная фирменная прошивка Spectrum во время работы (модифицированная — только при загрузке/выгрузке снэпшотов) |
| 1.03 | Изменения только в коде AVR — добавлена пауза и управление TAP клавишами основной клавиатуры. Используется WinAVR-20071221 |
Полезные ссылки проекта: