Skip to content
ekundoPublic

About

ComboLite: плата расширения для «Вектора-06Ц» — квазидиски, IDE, дисковод, AY, VGA, Wi-Fi

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

ComboLite для «Вектора-06Ц»

Warning

Собирать rev4 пока не стоит: готовится ревизия 5. На rev4 найден баг, который не исправить прошивкой. Почти все хорошие игры для «Вектора» рисуют синхронно с лучом развертки, и на VGA у них артефакты вокруг спрайтов и мелькание; на телевизоре все чисто. Плата читает копию экрана в такт своему кадру VGA, а не лучу «Вектора», а буфера на целый кадр у rev4 нет: ПЛИС не может писать во внешнее ОЗУ. В rev5 вместо разъема IDE будет SD-карта (ПЛИС изображает тот же контроллер IDE), а освободившиеся выводы пойдут на адрес и запись ОЗУ под буфер кадра — тогда VGA на 60 Гц покажет то же, что телевизор.

ComboLite — плата расширения в разъем ВУ «Вектора-06Ц». На одной плате собраны два квазидиска, контроллер IDE, контроллер дисковода, звук AY и ВИ53, цветной выход VGA, USB-мышь и Wi-Fi. Логика живет в ПЛИС Lattice MachXO2, сеть — в модуле ESP32-S3. Все детали покупаются сегодня: нет ни PLCC-84, ни AY-3-8910, ни КР1818ВГ93.

ComboLite, лицо

Что умеет

функция как сделано
два квазидиска по 256 КБ регистры 10h и 11h, окна экрана и стековый режим по Баркарю. Две статики по 512 КБ на 55 нс, содержимое держит батарейка CR2032
винчестер IDE порты 50h-5Fh, разъем на 40 контактов и питание +5 В для накопителя: CompactFlash или SD в переходнике, модуль DOM, винчестер 2,5"
дисковод ядро, совместимое с КР1818ВГ93, порты 18h-1Ch, разъем на 34 контакта, два привода. Прямой шлейф или шлейф от ПК с перекруткой — по настройке
звук AY ядро YM2149 в ПЛИС, порты 14h и 15h
звук ВИ53 ПЛИС слушает записи в таймер «Вектора» (08h-0Bh) и сама синтезирует его звук: провод с контакта 42 не нужен
цветной VGA экран «Вектора» с бордюром, 256 цветов. Палитра, бордюр, режим 512 и прокрутка снимаются с шины, мультиколор работает. 720×900 при 60 Гц (монитор с матрицей 1440×900 берет его как свой режим) или 576p при 50 Гц. Видеовыход самого «Вектора» работает как прежде
USB-мышь розетка USB-A, мышь по протоколу KTSerg на порту D4h, с колесом
Wi-Fi модем порты 28h-2Dh в раскладке UART 16550, команды Hayes: telnet и TCP (BBS, IRC), Gopher, в том числе сайты на GitHub Pages через HTTPS, список BBS из Telnet BBS Guide
Wi-Fi ESP32-S3 с внешней антенной: веб-интерфейс, винчестер как сетевой диск (NBD), образы дискет через браузер, снимок экрана «Вектора»
обновление по воздуху и прошивка ESP, и прошивка ПЛИС заливаются по Wi-Fi, плату можно не доставать
кнопки СБР и ВВОД плата нажимает их ключами: сама запускает «Вектор» при включении (антигудок не нужен) и по команде из веб-интерфейса
подставной загрузчик «Вектор» со штатным ПЗУ грузится с квазидиска, винчестера или дискеты без замены ПЗУ

Непрошитая плата «Вектору» не мешает: подтяжки держат трансляторы закрытыми, пока ПЛИС не загрузится.

Документы

документ для кого
Руководство пользователя (PDF) подключение, веб-интерфейс, настройки, устройства, неисправности
Сборка платы (PDF) монтаж по этапам с проверками, первая прошивка ESP и ПЛИС
Программы для «Вектора» терминал, IRC, Gopher и настройки платы под МикроДОС
Модем порты и команды Wi-Fi модема — для тех, кто пишет программы под него
Что проверено результаты испытаний собранной платы в «Векторе»
Планы что дорабатывается в прошивке
Плата файлы KiCad и данные для производства
ПЛИС исходники, проект Lattice Diamond, готовый образ
Прошивка ESP исходники, сборка ESP-IDF

Как устроен VGA

Экран «Вектора» — 256×256 точек в четырех планах, 32 КБ. Хранить его копию в ПЛИС негде, поэтому кадр не хранится, а перечитывается. Когда процессор пишет в экранную память, та же запись ложится и в статику платы — это копия экрана. VGA-тракт читает ее строка за строкой по ходу развертки, в паузах между обращениями «Вектора» к памяти. В самой ПЛИС остается только кольцо на 32 строки.

ЦАП на выходе — три разряда на красный, три на зеленый и два на синий, как в байте палитры «Вектора» (BBGGGRRR), поэтому на VGA те же 256 цветов. Каждую запись в порты палитры и бордюра плата кладет в журнал вместе с местом в строке, с точностью до такта процессора. Каждая строка воспроизводится по своему журналу, поэтому мультиколор, в том числе со сменой палитры посреди строки, выглядит так же, как на телевизоре.

Кадр «Вектора» — 50 Гц. Режимы VGA:

  • 60 Гц (по умолчанию) — 720×900, половина VESA 1440×900@60. Монитор с матрицей 1440×900 принимает его как свой режим: точка «Вектора» ложится на матрицу целым прямоугольником 2×3 (в режиме 256 — 4×3), без размытия, а картинка 512×256 занимает 1024×768, ровно 4:3. Каждый кадр VGA показывает целиком один кадр «Вектора»: палитра, бордюр и прокрутка из одного кадра, без шва; каждый шестой кадр VGA повторяет предыдущий;
  • 50 Гц — развертка 576p (31,3 кГц, 625 строк), кадры один в один с «Вектором». Подходит мониторам и телевизорам, которые принимают 50 Гц.

На вывод 9 разъема VGA подано +5 В через предохранитель и диод: переходники VGA→HDMI часто питаются только от него.

Разъемы

что где
XS1 СНП34-90, в разъем ВУ «Вектора» изнанка
XS2 IDE, 40 контактов левый край
XS11 +5 В для привода IDE рядом с XS2
XS10 дисковод, 34 контакта верхний край
XS8 антенна Wi-Fi, RP-SMA верхний край справа
XS7 VGA, DE-15 правый край
XS4 звук, гнездо 3,5 мм стерео правый край
XS9 USB-A для мыши правый край
TP10-TP24 JTAG ПЛИС и UART модуля верхняя кромка

изнанка: разъем ВУ, модуль ESP32-S3, батарейка

Характеристики

плата 159,25 × 60,75 мм, шесть слоев
ПЛИС Lattice LCMXO2-7000HE-4TG144C: 6641 LUT4 из 6864 и все 26 блоков памяти. Ядро на 50 МГц, VGA на 40 МГц, дисковод на 16 МГц
память 2 × AS6C4008-55, 2 × 512 КБ: два квазидиска по 256 КБ и копия экрана
сеть ESP32-S3-WROOM-1U, внешняя антенна
шина уровни 5 В «Вектора» ↔ 3,3 В ПЛИС через пять SN74LVC16T245 и один SN74LVC8T245
питание +5 В от «Вектора»; на плате 3,3 В двумя стабилизаторами (логика и модуль отдельно) и 1,2 В для ядра ПЛИС
деталей 171 позиция, пайка ручная; самое мелкое — TQFP-144 и TSSOP-48 с шагом 0,5 мм

Состав репозитория

каталог что
hardware/ схема и плата KiCad, гербер, сверловка, BOM
fpga/ исходники ПЛИС на Verilog, выводы, проект Lattice Diamond, готовый образ combolite.jed
firmware/ прошивка ESP32-S3 на C, ESP-IDF
www/ веб-интерфейс, уезжает в прошивку ESP
tools/combo.py утилита для управления платой из командной строки (Python 3, без зависимостей)
software/ программы для «Вектора» под МикроДОС: терминал, IRC, Gopher, настройки платы
doc/ документы

Лицензии

  • Прошивки ПЛИС и ESP, веб-интерфейс, утилита — GNU GPL v3 (LICENSE).
  • Плата — CERN-OHL-S v2 (hardware/LICENSE).
  • Программы для «Вектора» в software/ — только исполняемые файлы, без исходников; свободно для некоммерческого использования.
  • Чужой код в составе — под своими условиями, список в THIRD_PARTY.md.

About

ComboLite: плата расширения для «Вектора-06Ц» — квазидиски, IDE, дисковод, AY, VGA, Wi-Fi

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages