ZX Kraken

За тем, что я приобрёл FPGA-мультиклон ZX Spectrum под названием Kraken, стоит целая серия ошибок и случайностей. Судите сами.

Всё началось несколько лет назад, когда я случайно вообразил, что у меня каким-то недоразумением слишком много свободного времени. Решил, что мог бы заполнить его сборкой компьютера Harlequin 128, который с противоположной стороны баррикады от современных FPGA-клонов — всё там собрано из дискретных компонентов. По инструкции это могло занять до нескольких часов; учитывая свою ловкость, я оценивал скорее несколько месяцев, и в целом это выглядело идеальным проектом. Заказал вместе с diZZym, через пару недель набор был дома — можно было начинать. Только не началось. Снова совершенно случайно я ведь помимо набора Harlequinа тогда же обзавёлся и дочерью, и с её появлением ушло всё то избыточное свободное время. Набор долго лежал в ящике, а когда я уже хотел отправить его в мир кому-то, к кому ушло моё свободное время, предложил diZZy, что соберёт мне компьютер, если потом одолжу его на его нескончаемые эксперименты с SIF. Так и вышло: diZZy Harlequinа собрал, однако выяснилось, что в нём где-то зарыт если не пёс, то уж точно муха — потому что ведёт себя совершенно специфически странно.

Я смирился с тем, что ещё какое-то время у меня не будет ничего, что напоминало бы нормальный Spectrum или хотя бы влезало в его корпус, когда случайно зашёл в e-shop Lotharka за чем-то совершенно другим, касающимся совершенно другой компьютерной платформы, — и по ошибке наткнулся на Kraken. Прочитал всё, что там о компьютере написано, и то, что он в итоге оказался в корзине, уже никакой ошибкой и случайностью не было.

Разработка компьютера, из которого в прошлом году возник Kraken, началась примерно три года назад под простым названием ZX128 Replica, и поначалу это была от нынешнего облика очень отличная машина. У неё была реальная Z80, два реальных AY, можно было воткнуть и реальную ULA, а FPGA обеспечивало лишь мелочи вокруг.

Новый облик начал обретать лишь в мае 2025 с ревизии платы 1.2, с которой получил и актуальное имя. AY и ULA переехали в FPGA, а когда в ревизии 1.5 FPGA сменили на большее — в него попал и процессор. Тот на плате, однако, присутствует и в реальном виде: у компьютера так два процессора, хоть одновременно никогда не работают.

По release notes к прошивке первая версия для нынешнего железа вышла в прошлом декабре 2025, так что можно сказать: если бы я выпустил RESTORE 5 в изначально планируемый срок, собственно и писать было бы не о чем. За неполгода между выходом первой версии и тем, о чём пишу в первой половине мая, однако утекло много воды — версий прошивки вышло уже четырнадцать официальных (1.00 до 1.13) и пять разработочных (beta 1.20a до 1.20e). Но прежде чем доберусь до специфики того, чем отличаются главная и beta-ветки прошивки, сначала немного о железе...

Kraken спроектирован так, чтобы без проблем влезал в непеределанный корпус от оригинальной «резинки» или плюса. Нигде не нужно дырявить отверстия под дополнительные входы и выходы, и Lotharek эту особенность указывает сразу в первой строке описания — красным шрифтом и капсом, так что, видимо, считал это при разработке очень важным. По ширине плата совпадает с оригиналом, второй размер, однако, примерно половинный — в плюсовом корпусе, в который я компьютер встроил, так остаётся много свободного места.

Там, где обычно выход с модулятора, на Krakene — 9-пиновый mini-DIN разъём с RGB-видео (разводка якобы по стандарту Sega; в e-shopе можно сразу купить кабель, у которого на другой стороне SCART). Один из пары кассетных портов заменён кнопкой, которой компьютер конфигурируется и сбрасывается (плюсовый reset можно из корпуса вынуть — подключать его некуда), на месте второго кассетного порта jack остался, только на нём tape in и out совмещены. Шина и питающий jack — там, где у оригинала; в отличие от оригинала, однако, не нужно решать полярность питания — компьютер справляется с обеими.

Kraken умеет работать в восьми режимах:

  1. Originál 48 — конфигурация использует реальную Z80 на 3.5 MHz, исходную ROM, доступны 48 kB RAM, ULA «дождит», и компьютер звучит только бипером.

  2. Turbo 48 — используется softcore Z80, такт переключаемый между 3.5 и 14 MHz, ULA не дождит, активен режим ULA Plus, помимо бипера присутствует одно AY, и вместо исходной ROM — The GOSH Wonderful ROM.

  3. Pentagon Base — реальная Z80 на 3.5 или 7 MHz, 512 kB RAM, TurboSound, Pentagon ROM

  4. Pentagon Turbo — softcore Z80, 3.5 или 14 MHz, 512 kB RAM, TurboSound, Pentagon ROM

  5. 128 — реальная Z80, 3.5 MHz, 128 kB RAM (соблюдает медленные и быстрые страницы как оригинал 128), дождящая ULA, AY, оригинал ROM

  6. 128 max — то же, что предыдущее + второе AY + изменённая ROM + ULA Plus

  7. +3 — то же, что предыдущее, только без второго AY и с +3 ROM

  8. Timex 2048 — реальная Z80, 3.5 MHz, 48 kB RAM, ULA Plus, AY, Timex ROM

Этот список действует для официальных версий прошивки (то есть на момент написания статьи до версии 1.13 включительно), у которых нет on-screen меню с конфигурацией — отдельные режимы переключаются простым нажатием кнопки на задней стороне компьютера. Beta-прошивка уже меню имеет: в нём можно некоторые вещи конфигурировать отдельно, и например к некоторым конфигурациям помимо одного или двух AY можно добавить ещё Covox, SAA1099 или шестиканальный FM-синтез через Yamaha 2203.

Помимо кнопки или меню Kraken ещё можно управлять клавиатурными сочетаниями, которые перехватывает прошивка и не передаёт дальше Spectrum. Это немного странно, и сам Lotharek уже должен был править, какие клавиши где нажимаются: выяснилось, что некоторые комбинации используются в играх, и когда их нельзя нажать одновременно — это проблема. Некоторые из актуально работающих сочетаний:

  • Z + X + G = Game Mode — поскольку у Krakena довольно большая ROM, Lotharek в зависимости от версии прошивки напихал в него восемь или шестнадцать игр, между которыми можно переключаться дальнейшими сочетаниями, которые снова зависят от версии прошивки. На компьютере так можно во что-то играть, даже когда к нему больше ничего не подключено.

  • Z + X + 0 = DIAGNOROM 1.73 — ROM для тестирования железа компьютера

  • Z + X + T = в режимах с softcore Z80 переключает частоту процессора между базовой и turbo

  • Caps Shift + Z + X + Space = мгновенный сброс компьютера; если пробел удерживается во время сброса — происходит реинициализация divIDE/divMMC

Как, наверное, заметите по некоторым формулировкам, Kraken под руками довольно сильно меняется: что работало в одной версии прошивки — не работает в следующей, либо работает иначе и т. д. Это удел, наверное, всех FPGA-клонов; не знаю ни одного, который бы этим (минимум в начале разработки) не прошёл.

Также у FPGA-клонов довольно нормально, что у них есть какая-нибудь «улётанность», над которой более консервативный индивид лишь покачает головой. У Krakena это bluetooth-модуль, через который можно загружать в компьютер TAP-ки с PC, Mac или смартфона. Kraken подключается как звуковое устройство, и в него проигрывается стандартной скоростью звук с ленты. Могу представить это как аварийный вариант, скажем, для прошивки divIDE, когда под рукой нет аудиокабеля — но на ежедневное использование это не пойдёт.

Первые впечатления от Krakena, впрочем, пока в целом положительные. Пробовал его и с divIDE, и с divMMC (которое из-за этого даже через шесть лет после покупки наконец распаковал из коробки, обновил ему esxDOS и научился пользоваться) — и с обоими работает без проблем. Поскольку более новая прошивка содержит конфигурационное меню и — как уже упоминал — в нём некоторые вещи можно менять в рамках конкретных машин, я сразу предложил Lotharkу добавить в конфигурацию +3 возможность выбора +3e ROM — с подключённым divIDE/divMMC эту систему должно быть можно полноценно использовать, и для Lotharka это не будет означать никаких дальнейших правок.

Предполагаю, что со временем пока лихорадочная разработка замедлится, и свойства компьютера, его управление и возможности конфигурации устаканятся. К тому времени он будет устраивать меня ещё больше, чем сейчас, когда за полтора месяца прошивку обновлял уже дважды — что каждый раз означает разобрать компьютер, потому что прошивочный USB-C разъём внутри.

Тем не менее кажется, что ошибки и случайности привели меня к довольно милому новому Spectrum, которое за относительно небольшие деньги (480 PLN ~ 115 EUR ~ 2800 CZK) предлагает кучу возможностей. На спектрумистских акциях так снова буду сидеть у реально выглядящего компьютера, а не у коробки с подключённой PC-клавиатурой. Уже даже скучал.

Только для RESTORE написал Logout.

Share your thoughts about the article