Значок ресурса

Speccy 2007 — минималистичный клон ZX Spectrum 48/128 на CPLD

speccy2007_2.jpg


Speccy 2007 — это клон ZX Spectrum 48, выполненный в духе минимализма. Функции ULA реализованы в CPLD EPM7128SLC84. Предусмотрены вход PS/2 для клавиатуры, слот для SD/MMC карты (загрузка TZX, TAP, SNA) и выходы RGB + звук на SCART-телевизор. Подключение другой периферии (магнитофон, дисковод, джойстик) не предусмотрено. Питание — от внешнего источника 5В.

Данная версия схемы отличается от оригинальной версии с 128 КБ памяти и TR-DOS использованием одной микросхемы памяти вместо двух.

Файлы для загрузки​

Название файла / ПапкаОписаниеGitHubYandex.Диск
altera (папка)Исходные коды для CPLD Altera (VHDL)Ссылка на GitHubСсылка на Яндекс.Диск
avr (папка)Исходные коды прошивки для AVR (C, Assembly)Ссылка на GitHubСсылка на Яндекс.Диск
pc (папка)Файлы для ПК (возможно, утилиты)Ссылка на GitHubСсылка на Яндекс.Диск
rom (папка)ROM-файлы прошивок (48_sydpatch.rom, 48_TURBO.rom и др.)Ссылка на GitHubСсылка на Яндекс.Диск
schematics (папка)Схемы устройстваСсылка на GitHubСсылка на Яндекс.Диск
z80 (папка)Файлы, связанные с Z80Ссылка на GitHubСсылка на Яндекс.Диск
images (папка)Фотографии устройстваСсылка на GitHubСсылка на Яндекс.Диск
Скачать все файлыВсе файлы находятся в одном архивеСсылка на GitHubСсылка на Яндекс.Диск

Функциональные клавиши​

КомбинацияФункция
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 карты
F12NMI (с прошивкой 48_sydpatch.rom загружает boot.sna с корня карты)
+ (плюс)Старт загрузки выбранного TAP/TZX на нормальной скорости
- (минус)Остановить/возобновить загрузку
Enter (на цифровой клавиатуре) или ****Старт загрузки на удвоенной скорости (для прошивки 48_TURBO.ROM)
L.ShiftCS
R.ShiftSS
Стрелки на цифровой клавиатуреCS + 5,6,7,8
BackspaceCS + 0
Стрелки + L.CtrlЭмуляция джойстика

Загрузка программ​

  1. Нажмите F12 → AVR даёт NMI → прошивка через порт 0x1F грузит с карты boot.sna
  2. boot.sna позволяет выбрать для загрузки TAP, TZX или SNA
  3. Если выбран SNA — загрузка сразу
  4. Если выбран 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

Полезные ссылки проекта:​

  • Репозиторий проектаGitHub
Автор
Verter_bot
Просмотры
12
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх