Uzix | микроблог

#Zx

И снова про нейросети, но для спектрума...

Нейронки, оказывается, вполне умеют писать ассемблерный код для ZX Spectrum.

Есть у меня плеер MIDI, и в нём есть драйвер FAT32. Дал бесплатному Codex простой промпт: “Это проект плеера для ZX Spectrum, написан на sjasm. Для проверки и сборки используется команда make all. В src\fatfs.asm находится драйвер FAT32. Добавь в него поддержку FAT16.” - никакой другой настройки, никакого дополнительного контекста. Задача так-то не сложная, но мне всё время было недосуг вспоминать/заново разбираться с устройством FAT (правда, всё равно пришлось чтобы сделать ревью). К моему удивлению, нейрока не просто справилась, но сделала это с первой попытки, написала вполне пригодный код и ничего при этом не поломала. Нашлось пара мелких косяков оптимизации, но спустя пару промптов нейронка всё сама и поправила. Ну и комментариев маловато оставила, их я уже сам добавил в процессе ревью.

А вот с локальными моделями этот же эксперимент, к сожалению, провалился. Все три опробованные модели - Qwen3.6-27B-Q6_K, Qwen3-Coder-Next-UD-Q4_K_XL и Qwen3.5-122B-A10B-UD-Q3_K_XL явно не понимали что здесь происходит, почему при сборке всё время мешает какой-то там ассерт на размер структуры, и вообще за что им всё это :)

Коммит для любопытных.

Релиз ZXEVO.1010 rev.A1

Публикую новый проект ZXEVO.1010 rev.A1 - клон ZX Evolution на двух двухслойных платах 10x10см.

Основные характеристики:

  • Полная совместимость по прошивкам/конфигурациям/софту с ZX Evolution revC
  • Слот карт памяти SD или microSD
  • PS/2 порты клавиатуры и мыши
  • VGA выход видео
  • VDAC2
  • TSFM (моно выход) на двух чипах YMF288
  • NeoGS
  • SounDrive
  • Встроенный MIDI синтезатор + выход для подключения внешнего синтезатора
  • WiFi (ZiFi)
  • RTC
  • Магнитофонный вход 3.5мм
  • 1xDB9 разъём для сега-джойстиков
  • Питание через USB Type C
  • Корпус G738 или G706

Ссылка на исходные файлы, прошивки и файлы для производства: https://github.com/UzixLS/zxevo1010-board

Релиз ZX UNO 1010 rev D1

Публикую новую ревизию D1 платы проекта ZX UNO 1010.

Основные изменения относительно ревизии A1:

  • Добавлены часы
  • Улучшен выход звука - уменьшен шум, добавлен операционный усилитель
  • Второй джойстик теперь подключен по схеме сплиттера - аналогично как в оригинальной UNO. Ранее был подключен по схеме UNO VGA2M, которая хуже поддерживается со стороны ядер.
  • Джойстики теперь запитаны от +5В вместо +3.3В
  • USB type C вместо micro USB для питания
  • Светодиоды 5мм вместо 3мм на лицевой панели
  • Множество различных мелких улучшений и доработок

Полный список изменений, все исходные и прочие файлы, как обычно, выложил на github: https://github.com/UzixLS/zxuno1010-board

Небольшая демонстрация истории борьбы...

Небольшая демонстрация истории борьбы с шумами в звуке на ZX Uno 1010 Запись выполнил через линейный вход звуковой карты с выкрученной на максимум громкостью (к слову, при нормальной громкости самый сильный шум - на ревизии А - едва слышим)

Основные источники шума:

  • 50 Гц шум от видео сигнала
  • Щелчки ~10 раз в секунду от WiFi - только когда модуль не инициализирован
  • ВЧ писк от БП - зависит от потребления, специальных мер борьбы с ним не предпринималось

Основные изменения от ревизии к ревизии:

  • A: начало
  • B: добавил отдельный LDO для питания WiFi; добавил ОУ c питанием от входных 5В через индуктивность. Запись сделана с конденсатором на виртуальной земле ОУ 10мкФ. Изначально стоял 100нФ, с ним шум был, без преувеличения, оглушительный
  • C: добавил LDO для питания ОУ, конденсатор виртуальной земли 100нФ
  • D: заменил LDO ОУ на 1117, MIDI чип перекинул на питание от этого LDO (ранее питался от LDO ПЛИС) и подвинул подальше от WiFi-модуля
  • D1: заменил 100нФ конденсатор на виртуальной земле ОУ на 1мкФ

...а вот Ева удивила...

…а вот Ева удивила… Удивила тем, что практически никаких критичных ошибок не обнаружилось, и плата прошилась и запустилась с первой подачи питания! Но без проблем всё равно не обошлось - нужно добавить последовательно резистор 47Ω в клок ЦАПа NeoGS (на фото выше он) - иначе на ЦАПе появляются по(ту)сторонние звуки. Так же посадочное место для ACEX на нижней плате оказалось маловато, из-за чего запаять его сложнее - а чтобы увеличить его надо даже не знаю что сделать т.к. дорожки там набиты от края до края… Ну и нужно сбалансировать громкости разных источников в микшере и сделать всякое прочее по мелочи.

На этом проекте я поэкспериментировал с посадочным местом Z80 - сделал его универсальным для PLCC и QFP корпусов. QFP, как оказалось, из-за укороченных площадок встаёт прямо впритык - но запаять можно, да и не особо сложно на самом деле. С PLCC же вообще никаких проблем.

Но главное - весь функционал работает - NeoGS, MP3, MIDI, VDAC2 (и да, он и вправду умеет играть avi файлы!), WiFi - я доволен :)

Все в сборе...

Все в сборе! И все запущены!

Уна на 100% готова, осталось только оформить релиз - написать список изменений, отретушировать фотографии, сгенерировать pdf и герберы, ну и сделать всякие прочие скучные вещи :)

Мист включил пока только пару раз - на первый взляд работает, но нужно ещё уделить N часов ему чтобы всё проверить. Ну и ещё со старой ревизии остался нерешённый вопрос по композитному видео: в ядре PCXT, в теории, на новой ревизии платы должен выводиться нативный CGA композит (т.е. именно в таком виде, в каком он генерировался на оригинальных картах - с помощью артефактных цветов). Но пока цветной картинки у меня добиться не получилось - то ли в плате нужно что-то поправить, то ли в ядре что-то не так (я не до конца уверен что этот функционал вообще проверялся кем-либо на мисте :) )

ZX-MultiSound rev.A2

Небольшое обновление ZX-MultiSound rev.A2.

Список изменений:

  • Исправлено тактирование GS Z80 - добавлен буфер на тактовый сигнал. В старой ревизии из-за этого могли не работать некоторые Z80;
  • Исправлена распиновка разъёма 3.5мм - поменяны местами правый-левый каналы;
  • Исправлено расположение R20 и R34 на шелкографии;
  • 74LVC1G125DB заменён на 74AHCT1G125DB;
  • C3,C5,C17,C18 немного сдвинуты влево чтобы не мешать установке YM2203;
  • Добавлен дополнительный ключ на краевой разъём;
  • Доработано посадочное место SAM2695 для удобства ручной пайки.

Эту ревизию пока никто не заказывал и не проверял.

https://github.com/UzixLS/zx-multisound

*Немного* попаял...

Немного попаял. Больше всего опасений в новых ревизиях вызывал разъём USB Type C - ранее я его не применял т.к. он больше чем MicroUSB и толком не влезает на плату. Но по итогу всё встало просто идеально: без корпуса разъём частично свисает с платы, но в корпусе он встаёт заподлицо с заглушкой.

Пришла очередная посылка с платами...

Пришла очередная посылка с платами: пикогусь, комбосаунд и новые заглушки в корпус для миста и уны. Заказывал в NextPCB - т.к. у них более-менее адекватная цена на четырёхслойные платы, чего не скажешь про PCBWave. Качество нормальное, есть косяки с шелкографией на заглушках (видно на фото), не смертельно.