Клон Спектрум-128 "Светлячок" (Firefly)
"Светлячок" представляет собой практическую проверку
некоторых идей по развитию аппаратной части:
1) аудиокодек Delta-Sigma как максимально дешевый ЦАП с приемлемым качеством звучания;
2) новый видеорежим 2 граф слоя + слой тайлов;
3) управляемый делитель частоты процессора 2.625..21 МГц на счетчике с загружаемым значением;
4) HDL-модель ВГ93 с реальным дисководом (работает и с эмулятором).
"Светлячок" представляет собой клон с логикой на ПЛИС Cyclone IV E EP4E6.
Основные дискретные элементы:
- процессор Z80 20 МГц в корпусе 44LQFP (разгон до 21 МГц);
- делитель частоты процессора на сериях 74F, 74AC;
- статическое ОЗУ 128К х 8 CY62128ELL 45 нс;
- ПЗУ 27С512R (однократно программируемое) 45 нс (TR-DOS 5.03);
- ПУ 74LVC164245;
- "читалка" на 74HC14 (триггер Шмитта);
- интерфейс дисковода на 74LVC14, 74LVC06;
- наушниковый усилитель на TDA1308.
Таким образом, дискретной "ВГ-шки" в клоне нет.
Скорость ПК может переключаться в любой момент записью значения в область ПЗУ: 0..14,
что дает следующие значения частоты на тактовом входе ЦПУ:
2_625 <= 0000;
2_800 <= 0001;
3_000 <= 0010;
3_231 <= 0011;
3_500 <= 0100; // ** стандарт
3_818 <= 0101;
4_200 <= 0110;
4_667 <= 0111;
5_250 <= 1000;
6_000 <= 1001;
7_000 <= 1010; // *
8_400 <= 1011;
10_50 <= 1100;
14_00 <= 1101; // *
21_00 <= 1110; // *
0_000 <= 1111; // запрещено аппаратно - тактовая останавливается !!!
Звуковой сопроцессор был найден где-то на Github, переделан из SystemVerilog в обычный Verilog
и адаптирован под мои тактовые частоты. Играет он не очень точно, на мой взгляд. Но похоже.
Клавиатура выполнена на механических переключателях Kailh без щелчка, усилие 35 г.
Схемно это классическая спектрумская клавиатура, висящая на адресной шине.
Корпус GAINTA G1183B типа "пульт", в нем собрано все, в т.ч., дисковод и клавиатура.
Видеорежимы:
- стандартный ZX128 (времянки Пентагон);
- расширенный Firefly;
В расширенном видеорежиме графика представляет из себя от 1 до 3 слоев - двух
графических монохромных (2 слоя * 2 цвета чернил и бумаги задаются отдельно) и
текстового режима с возможностью загрузки знакогенератора (по сути, тайловый
режим, как в MSX).
Слой 1 - это стандартный экран ZX 256*192 (screen5) #4000-#5800
Слой 2 - это стандартный экран ZX 256*192 (screen7) #С000-#D800
Атрибуты screen5 и 7 используются для текстового режима,
первые - 32*24=768 кодов символов,
вторые - 32*24=768 цветов символов (чернила и бумага по 4 бита без мигания).
Сам же знакогенератор после включения питания - 256 символов 8*8,
также меняется записью в область ПЗУ (2048 байт).
Записью в регистр управления можно менять взаимное положение слоев, при этом
для графических режимов прозрачным будет бумага НЕпоследнего слоя,
а для текстового (тайлового) - яркий черный (8). Также можно включать-выключать слои,
кроме любого одного (это такая "фича" - любой оставшийся слой не выключится).
Расширенный режим обладает высокой степенью совместимости с обычным ZX128.
В прилагаемом архиве (7 МБ) содержится вся информация по разработке, исходники 2-х дем,
проект Quartus (22.1 Prime Lite), расчеты, программа для создания тайлов "ПлиткоДел",
также оригинальные и поправленные разводки и схемы DipTrace.
https://disk.yandex.com/d/QmGNbyfs2nPyog
Видео работы дем выложено на YouTube. Сразу извиняюсь за качество.
https://youtu.be/DcYXKXqHW9M
https://youtu.be/RnWsctUVwgw
HDL-модель создавалась на основе справочного листа Western Digital WDC179x.
Выделитель сигнала "цифровая ФАПЧ" взят из приложения к справочному листу (Appnote).
Дисковод 3.5" ноутбучного формата Сitizen X1DE-OOR с 26-проводным интерфейсом (плоский шлейф).
Дисковод и эмулятор проверены в работе: форматирование, запись файлов из BASIC,
чтение, DCU 8.07, ADS 3.0, TESTPROG от "Солон".
Возможности тестирования у меня небольшие, так что проект можете повторять на свой страх и риск.