ZXDOS+: Spectrum и esxDOS


Ну и наконец-то мы дошли до того самого, ради чего это устройство и создавалось — для использования его в качестве полноценного ZX Spectrum да ещё и с наворотами. Как уже упоминалось в первой части, у данного устройства есть всё необходимое, чтобы нормально функционировать как полноценный Спектрум, только у него вместо оригинальной схемы есть FPGA, в которую можно заливать нужную прошивку (и ядро оригинального Спектрума там уже есть и причём загружается по умолчанию), и есть отдельные входы для PS/2-клавиатуры и PS/2-мыши (причём можно использовать и переходники с USB, лишь бы сам протокол был реализован в этих устройствах ввода), есть VGA-выход, корректно выдающий картинку на устройства, которые поддерживают вертикальную частоту развёртки 50-60 Hz, есть два гнезда для джойстика (причём их тип можно выбрать в BIOS), есть стандартный отдельный аудиовыход, есть даже аудиовход для загрузки программ с магнитофона и спектрумовский слот расширения. Полный фарш. Но есть и ещё одна приятная особенность — это наличие слота для MicroSD-карты и возможностью загружать программы с карты туда вставленной.

ZXDOS+: вид справа

Т.е. то, для чего в случае с оригинальным ZX Spectrum необходимо было покупать отдельное устройство (например, divMMC от Byte Delight), которое втыкалось в оригинальный разъём расширения Спектрума, тут доступно, как говорится, из коробки.

divMMC от ByteDeligth

Но просто воткнуть карточку в слот будет недостаточно. На этой карте должно быть установлено соответствующее ПО, которое сможет задействовать данный потенциал устройства. А конкретно — esxDOS. С их официального сайта надо скачать последнюю версию (на момент написания статьи это 0.8.8) и распаковать содержимое в корень карточки. Однако, поскольку устройство идёт по умолчанию с esxDOS 0.8.6, то сначала надо будет обновить esxDOS в BIOS ZXDOS+. Как это делается, я писал в предыдущей части.

esxDOS

Ну и в итоге, если вы всё сделали правильно, а в BIOS выбрано ядро ZX Spectrum и ROM Rooted ZX Spectrum 48, то при старте устройства не сразу откроется голый экран 48-килобайтного Спекки, а сначала промелькнёт экран загрузки esxDOS:

Старт esxDOS

На этом экране определяются устройства (у нас только sda для MicroSD), монтируются разделы на вставленной карте (hd0) и загружаются необходимые библиотеки. Кстати, библиотека RTC.SYS не входит в поставку esxDOS, но она есть в пакете установки ZX Spectrum Next, так что можно позаимствовать оттуда и положить в папку SYS на карте памяти (ну или просто совместить оба проекта на одном разделе — с этим всё нормально). После этого у нас всё-таки появляется экран Спектрума, но это уже не просто голый 48-килобайтный компьютер времён 80-х годов прошлого века, на котором можно разве что писать на бейсике и загружать/сохранять данные на магнитофонную ленту, это уже прокаченное устройство.

Во-первых, появляется возможность нажав кнопку F5 на клавиатуре оказаться в меню NMI («немаскируемое прерывание»), что позволяет запустить файловую оболочку esxDOS и «бегать» по содержимому SD-карты, просматривать и запускать находящиеся на нём файлы.

Экран помощи в esxDOS

Благодаря реализованной эмуляции ленты — поддерживается чтение/запись TAP-файлов (а вот файлы TZX не поддерживаются), а благодаря эмуляции TR-DOS — можно монтировать до 4 дисководов образами дисков в формате TRD (SCL, FDI и прочая экзотика типа UDI и Teledisk тоже не поддерживается) с помощью клавиш A, B, C и D. Ну и можно напрямую запускать снэпшоты в форматах Z80 и SNA, а также просматривать снэпшоты экранов в формате SCR (клавиша V). Кроме этого, можно самому создавать снэпшоты памяти в формате SNA (клавиша S).

Список каталогов в файловом менеджере esxDOS

В итоге, благодаря esxDOS мы получаем расширенные возможности по хранению и использованию файлов разных форматов для ZX Spectrum, до этого присущих эмуляторам. И сначала эмуляторы «заэмулировали» использование реальных дисководов (у меня был первый PC с 5-ти и 3-дюймовыми дисководами, которые вполне сносно работали в эмуляторах Спектрума типа UKV и Z80 с добавленной поддержкой TR-DOS) и полностью перешли на свои специальные форматы файлов. А теперь эти форматы (изначально созданные для разных эмуляторов Спектрума) пришли и в реальные и даже оригинальные ZX Spectrum. И, хотя «лента» ещё более-менее востребована, но и она сейчас скорее уже в виде звуковых файлов, проигрывающихся на смартфонах.

А, во-вторых, кроме файлового менеджера (которого обычным пользователям будет достаточно в 99% случаев), есть в esxDOS ещё одна специфическая возможность, а именно дополнительные команды, которые можно вводить в режиме BASIC48 и расширенные команды самого языка BASIC. Первые необходимо вводить с точкой в начале, поэтому они так и называются («DOT» commands) и по сути они вызывают специальные бинарные программы в папке BIN на SD-карте. Т.е. если там файла соответствующего команде не будет — то и команда не сработает. Перечислять я все команды не буду, с ними можно ознакомится либо в мануале самого esxDOS, либо в мануале к ZXDOS+ (тут описания короткие и простые). А вторые — расширенные команды BASIC: GOTO, CAT, LOAD, SAVE, ERASE (тоже описаны в мануале), которые позволяют использовать как параметр конкретное дисковое устройство.

Вот пример применения dot-команды перехода по каталогу (.cd) и показа его содержимого (.ls):

Перешли в каталог ZX и отобразили список файлов

Основные возможности dot-команд связаны с файловыми операциями (и это логично), запуском файлов в поддерживаемых форматах (указано выше) и просмотром/проигрыванием поддерживаемых файлов: музыкальных (PT3, SQT, STC, TFC, WAV). При этом, в поставке esxDOS этих команд немного — 38, хотя их на самом деле может быть больше, т.е. тут всё зависит ещё и от тех кто разрабатывает «железо» с поддержкой этого самого esxDOS. Перечень всех-всех команд со ссылками на них я смог найти тут (ссылка с форума worldofspectrum.org), но записи обрываются год назад, так что, возможно, есть что-то ещё. Конкретно для ZXDOS+ есть следующие возможности:

  1. Операции связанные с сохранением (получением дампа) энергонезависимой памяти устройства (.back16m, .back32m, .romsback), а также с прошивкой устройства (.upgr16m, .upgr32m, .romsupgr, .corebios). Например, список ROM в памяти устройства нельзя обновить через BIOS, но можно обновить с помощью dot-команды (описано в предыдущей части).
  2. Настройка самого устройства (.zxuc, .zxunocfg).
  3. Мультимедиа: более качественное проигрывание (8 бит, 15625 Hz) WAV-файлов (.dmaplayw), проигрывание MIDI-файлов (.playmid) и даже проигрывание видео в специальном формате RaDastan Movie — RDM (.playrmov). Тут как раз имеет значение мощность самого устройства ZXDOS+, которая физически это позволяет.
  4. Сеть: программы для настройки (.iwconfig) и сброса Wi-Fi модуля (.esprst). В ZXDOS+ с чипом LX25 добавлен и Wi-Fi модуль для подключения к сети.

Т.е. фактически esxDOS — это на самом деле полноценная дисковая операционная система для ZX Spectrum и она хорошо работает на ZXDOS+. Но у неё есть и определённые минусы. Один из самых заметных — это отображение и работа только с короткими именами файлов (8 символов имя, 3 — расширение). Это не сильно напрягает, если у вас небольшое количество игр, собственноручно названных, которые вы с лёгкостью можете искать. Совсем другое, это использование целой библиотеки игр (например, с сайта World Of Spectrum) — тут иногда приходится действовать перебором и проще сначала найти нужную программу в более удобной ОС и отдельно её разместить с понятным названием. Далее — отсутствует поддержка формата дисков SCL, а именно в этом формате выложены образы программ на сайте Virtual TR-DOS. Да, от программиста Nihirashi есть проект специально для конвертации из SCL в TRD (scl2trd), с dot-командой .scl2trd и GUI в формате TAP-файла:

Но это опять же «костыли» и конвертировать по одному файлу очень неудобно, не говоря уже о том, что и скорость конвертации невелика. Поэтому готовить коллекцию игр придётся заранее. Мне, например, пришлось написать скрипт, который сконвертировал все файлы в скачанном архиве Virtual TR-DOS из формата SCL в TRD.

Та же самая засада нас ждёт и при наличии файлов TZX, только тут я не нашёл ни dot-команды для esxDOS (есть для ZX Next), ни какой-либо другой программы, работающей на Спектруме. Я нашёл только один вариант с GUI для Windows (ссылка), а ещё один (консольный) для скачивания требует логин и пароля на FTP World of Spectrum, которого у меня нет. И опять же — либо обходимся версиями в формате TAP, либо конвертируем по одному файлу.

Ещё мне не понравилось, что при выбранном ускорении ZX Spectrum в BIOS ZXDOS+ ускоренно двигается курсор в браузере файлов esxDOS. И если при удвоенной частоте ещё как-то можно попадать по нужным каталогам и файлам, то при дальнейшем увеличении это уже просто издевательство. Мне кажется, такие вещи надо всё-таки продумывать.

Что же касается эмуляции ленты и дисков, то, с одной стороны, вроде всё хорошо. То есть программы загружаются, выполняется сохранение на диск (на ленту не проверял). С другой стороны, у меня возникли проблемы с загрузкой дисков журналов Spectrofon и ZX Format: начинается загрузка, иногда даже до заставки доходит, но потом идёт сброс. Возможно, это связано с защитой этих дисков, но в эмуляторах они загружаются нормально. Зависит ли это от эмуляции образов TRD в esxDOS или на это влияет само ядро ZX Spectrum в ZXDOS+ — я не понял. Ещё один баг словил при сохранении на диск TRD после загрузки снэпшота снятого самим esxDOS — игра просто вылетела. То есть и тут могут быть нюансы.

Ядро ZX Spectrum

А теперь немного про само ядро ZX Spectrum в ZXDOS+ и мои впечатления по его использованию. Начну с того, что поддержка esxDOS — это очень хорошо. Про её минусы я уже написал выше, но без этого устройство теряет 90% смысла.

Ядро точно воспроизводит работу ZX Spectrum (и «мультиколор» тоже работает), хотя не совсем удобно, что иногда надо лезть в BIOS и устанавливать те же тайминги для Pentagon. Можно увеличивать частоту процессора вплоть до 27 МГц, но это, опять же, только через BIOS, и не всеми играми нормально поддерживается. Зато при длительных операциях можно временно зажимать кнопку F12 и на это время устройство максимально ускоряется.

Вполне комфортно работать на стандартной PC-клавиатуре, хотя если вы программируете на BASIC48 вам отчаянно будет не хватать наклеек на клавиши (их, наверное, можно где-то купить или сделать самому). Т.е. для меня наличие настоящей спектрумовской клавиатуры не особо важно, особенно если это помогает уменьшить устройство и не остаться без него в случае поломки клавиатуры. Как раз мой Pentagon 128 мне пришлось забросить, потому что начала глючить клавиатура, а поменять её плёнку в то время было не так-то легко. Но для ZXDOS+ нужна PS/2-клавиатура, либо у USB-клавиатуры должна быть поддержка протокола PS/2. И ещё нюанс: в устройстве есть порт USB для клавиатуры с поддержкой протокола PS/2 (чтобы не использовать переходник), но у меня в таком случае не работала мышь.

Есть поддержка Kempston-мыши и есть отдельный порт для неё. Но сначала надо найти либо PS/2-мышь, либо пробовать с переходником USB-2-PS/2 (но не все мыши поддерживают сам протокол PS/2, а без этого переходник бесполезен). Минус — нет возможности поменять клавиши для мыши местами, а это иногда полезно (я не могу играть в UFO2 в режиме боя — постоянно путаю, что «идти» правой кнопкой и «стрелять» левой). Ну и нельзя использовать беспроводные мыши и клавиатуры — вот это реально печалит… А вот если бы была полноценная поддержка USB-протокола (я уж молчу про Bluetooth), то тут могли бы быть варианты.

С джойстиками всё отлично. В BIOS можно выбрать как будут представляться джойстики Спектруму и, соответственно, вполне можно играть сразу на двух джойстиках. Кстати, джойстиком-то обычно называется палка торчащая вверх с кнопкой (например, вот такой вариант). Я в своё время переломал в порыве страсти во время игр кучу дешевых джойстиков следующего вида (а потому что они были сделаны из говна из плохого пластика):

Старый недобрый джойстик

Но гораздо удобнее использовать обычный геймпад, тем более что сюда подходят те же джойстики для Sega Mega Drive 2, которые стоят достаточно дешево. Правда, покупать совсем дешевые варианты я бы вам не советовал, поскольку качество у них ниже плинтуса — хватит на месяц, а потом кнопки перестанут нажиматься. Я себе заказал беспроводной(!) геймпад, поскольку видел на видео, что он работает в ZX Spectrum Next, но жду пока он до меня доедет (доехал — отлично работает!). Геймпада-то мне в 90-х не хватало, а мысль перепаять какой-нибудь от Денди или Сеги мне тогда и в голову не приходила.

Хорошо, что в качестве питания используется USB-кабель, можно запитаться хоть от монитора с USB-хабом, хоть от телевизора. И подключиться VGA-кабелем тоже пока возможно почти ко всем мониторам и телевизорам (подключить к телевизору через RCA можно с помощью копеечного переходника). К сожалению, используется низкое разрешение и низкая вертикальная частота развертки — могут быть проблемы с некоторыми телевизорами и мониторами. У меня один телевизор включался только при выставленной частоте в 60 Hz, а один из мониторов работал только с частотами выше 50 Hz. Ну и разрешение — не фонтан, чисто для мониторов 15-летней давности. Почему нельзя самому выбрать нормальное разрешение лично мне непонятно.

Частота вер. разв.  в BIOS, HzРазреш. монитора 25″Частота гор. разв. монитора 25″, kHzЧастота верт. разв. монитора 25″, HzРазр. монитора 17″Частота верт. разв. монитора 17″, Hz
63,8800×6003860800×60060
61,8800×6003759800×60059
59,5800×6003657800×60057
57,4800×6003455800×60055
55,8800×6003353800×60053
53,5800×6003252800×60052
51720×5763251720×40050
50720×5763150720×40050
Вот такое вот разрешение и такие вот частоты

Итого

Ну а в целом ZXDOS+ с ядром ZX Spectrum полностью удовлетворил мои потребности в качестве современного Спектрума. Всё работает, как и обещано, а на SD-карте можно держать хоть весь архив программ для ZX Spectrum, созданных за всё время его существования. Есть незначительные нарекания к esxDOS, но они, возможно, будут устранятся по мере выхода новых версий. Например, одно из замечаний, которое у меня было: использование в файловом браузере коротких имён файлов — устраняется с помощью сторонних доработок, например File Browser с поддержкой длинных имён файлов и плюс к этому ещё и дополнительных расширений файлов и функций.

К самому же устройству можно только придраться за использование устаревших портов типа PS/2 (похоже, не так-то просто реализовать полноценную поддержку USB), да за низкое разрешение картинки на современных дисплеях. Всё остальное — на твёрдую пятёрку.

В следующей части разберём использование ядра ZX Spectrum Next и имеет ли оно преимущества перед ядром чистого ZX Spectrum.

ZXDOS+: Spectrum и esxDOS: 5 комментариев

  1. Уведомление: ZXDOS+ и MSX — Дюк Юсупов

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s