Zx spectrum scl чем открыть

Обновлено: 06.07.2024

Дисководы я подобрал , операционные системы для проверки работы дисководов в эмуляторах ZX Spectrum установил . Осталось подобрать подходящий эмулятор, который работал бы с реальными дисководами и устраивал бы всем остальным.

Эмуляторов ZX Spectrum существует целый вагон и ещё состав впереди него. Даже для DOS была написана целая куча, а про Windows и говорить нечего. Но мне нужен был тот, который работает с реальным дисководом, а не только с образами дискет.

Z80 + TR-DOS

Под конец 90-х на Pentium 120 МГц я пользовался эмулятором Z80 Г.А.Лунтера адаптированным В.А.Мочалиным для работы с TR-DOS, но сейчас он сразу отказался работать:

UKV Spectrum Debugger

Кроме этого я использовал ещё иногда UKV Spectrum Debugger от Константина Углекова, поскольку он позволял загружать образы дискет FDI. Но его юзабилити было просто ужасным, поскольку он и создавался скорее для отладки, чем для использования обычными людьми, да и ошибок в нём хватает. Ну и посмотрите просто на скриншот и добавьте к этому, что вводить имена файлов (с путями) нужно было руками, диалогового окна для этого предусмотрено не было.

И хотя сам UKV работал нормально и даже звук в DOS работал, но с реальными дисками не смог работать (опять слишком быстрый ПК), хотя и пытался - диск раскручивал и лампочкой моргал. Побороть запуском эмулятора с задержкой раскрутки дисковода не получилось (ключ -d255 при запуске).

ZX-Spectrum

Аналогичная ситуация с эмулятором Николая Шалаева (ZX-SPECTRUM). И хотя он и не поддерживает прямую работу с дискетами непосредственно в эмуляторе, зато в него встроена утилита по чтению/записи дискет в файлы формата TRD . Но и эта утилита тоже при попытке чтения дискет к дисководу обращалась, но потом выдавал ошибку. Зато посмотрите интерфейс этого эмулятора:

Выглядит вполне неплохо, пользоваться заметно удобнее, чем UKV. И даже есть вариант модулей расширения для эмулятора.

Real Spectrum

Также я был в курсе, что есть ещё импортный эмулятор Real Spectrum от RAMSOFT, но в то время он то ли тормозил у меня, то ли вообще не запускался, поэтому я его вообще не использовал. А больше, как оказалось, ничего работающего с настоящими дисководами и не было.

Зато Real Spectrum порадовал просто донельзя. Просто отличный эмулятор, под DOS - вообще без конкурентов. Авторам - респект и уважуха. Мало того, что качество эмуляции на высоком уровне (в том числе 100% поддержка мультиколора ), поддержка кучи внешних интерфейсов, так ещё и юзабельность на уровне. Управление сделано хоть и с помощью функциональных кнопок (а не общего меню), но они вызывают отдельные окошки-меню, с помощью которых можно настроить кучу параметров и выполнить множество действий.

Самое для меня главное, что с помощью кнопки F6 можно выбрать для использования настоящий дисковод:

Если же дисковод не работает, то стоит проверить установки для дисководов с помощью Alt-F6 , возможно выставлен неверный тип:

С помощью данного меню можно также считывать дискеты и записывать на них TRD-файлы:

Однако, надо не забывать что дискеты должны быть либо типа DD (Double Density), либо должны быть заклеены соответствующие отверстия в 3,5" HD-дискетах. Для 5,25" HD-дискет ничего вроде заклеить нельзя, работать должно и так, но не факт, что читаться потом будет нормально (но это я не проверял, поскольку дискет таких у меня нет, а быстро купить не получится).

При попытке записать на не заклеенную дискету будут выдаваться ошибки записи и в итоге картина записи будет примерно такой:

Ну и про остальные возможности. Кнопка F1 показывает собственно те функции, которые можно вызвать другими функциональными кнопками:

Можно выбрать одну из моделей ZX Spectrum ( F3 ), их не много, но есть все необходимые (а для Пентагона можно выбрать и вариант с 512 Кб). Но хоть по Ctrl-F1 можно поменять скорость эмуляции, но это работает как-то странно, выглядит не как простой подъём частоты процессора. В тех играх, где это должно влиять только на частоту кадров - ускорялось всё.

По F4 вызывается окно настроек джойстиков (можно выбрать из установленных в системе или набор кнопок), мыши и даже такого редкого вида манипуляторов как световой пистолет. Ctrl-F4 вызывает окно параметров IDE/ATA - можно подключать образы жёстких дисков.

F5 открывает снэпшоты (снимки памяти), а F6 , как уже показано выше, реальные дискеты или образы дискет в формате TRD (жаль FDI не поддерживается). F7 позволяет открыть образ ленты или использовать физический вход через аудиокарту. Alt-F7 настраивает параметры "ленты", а Shift-F7 - просматривать содержимое "ленты":

Разрешение экрана настраивается по F11 , а настройки экрана - по Alt-F11 :

В Windows с настройками вывода на полный экран вышло немного странно. Чтобы окно оказалось развернутым на всё пространство монитора, пришлось вместе с опцией " Full screen " выставлять и " Pixel scaler 2X ". В дополнительных же настройках внезапно обнаружилась возможность записывать экран и звук в видеофайл формата AVI. Достаточно неожиданная особенность. Вот по Alt-F8 можно ещё записывать и просматривать ролики в формате RZX - но это я видел у многих эмуляторов.

F12 и Alt-F12 вызывает настройки звука:

Можно просто записывать звук. А мне тут показался интересным факт возможности вывода звука музыкального сопроцессора AY через LPT-порт ПК.

Ну и вишенкой на торте - демо-режим ( F8 ) с возможностью проигрывания музыкального формата AY:

Ну а про дебаггер, пожалуй, и упоминать бы не стоило:

И вообще это просто комбайн какой-то с кучей явных и неявных наворотов. Такой подход к делу можно только уважать. Жаль, что эмулятор забросили, но он уже и так прекрасен.

Я бы заменил им свой текущий эмулятор FUSE , но Real Spectrum не работает в Linux, а под современными версиями Windows обладает несколькими особенностями, которые мешают с ним нормально жить: во-первых, на широких экранах не срабатывает переключение в режим Full screen , приходится довольствоваться всего лишь двойным увеличением, что на 25" экране смотрится издевательски. Во-вторых, эмулятор хотя и видит длинные имена файлов, но вот русский язык в них - не понимает и не даёт ничего делать. В-третьих, местами работает нестабильно, не так как под Windows XP или DOS.

Дисковые утилиты

Существует множество разных дисковых утилит, большинство собрано здесь . Дисковые утилиты искать надо в разделе " Работа с ZX файлами на PC " поиском по " TR-DOS ".

Во-первых, меня интересует утилиты для копирования с дискет и на дискеты. Наиболее универсальная утилита для DOS - это Teledisk :

Позволяет скопировать в образ TD0 любую защищенную дискету Позволяет скопировать в образ TD0 любую защищенную дискету

С помощью этой программы можно скопировать любую защищенную дискету. Образы снимает в собственном формате TD0, причём умеет их неплохо жать. Подобные образы ни один из существующих эмуляторов не понимает, приходится их конвертировать. Я использую в основном TRX2X Converter , он может работать с форматами UDI , FDI , TRD , SCL , TD0 , FDD, но работает только под Windows. Под DOS есть TeleDisk Converter .

Под Windows для анализа дискет и сохранения их в образы есть ZX Disk Studio :

Для просмотра и изменения содержимого образов дискет и реальных дискет под DOS я использую Spectrum Navigator :

Он позволяет также скопировать любой файл с дискеты в формате Hobeta . А под Windows проще всего использовать FAR Plug-ins :

Они позволяют не только просматривать и изменять дискеты и образы дискет, но и создавать образы дискет, форматировать реальные диски и работать с архивами ZXZip .

Существует ещё масса других утилит, решающих те или иные задачи, но я пользуюсь в основном вышеперечисленными (плюс чтение/запись дискет в Real Spectrum ). По крайней мере, эти я проверил и они работают, а многие другие уже не работают на новых ПК.

В конце-концов, после всех мытарств мне удалось более или менее решить задачу работы с реальными дискетами ZX Spectrum формата TR-DOS. Да, пришлось использовать обычный (и немного устаревший) ПК и эмулятор, да ещё и Windows XP устанавливать, но теперь я получил доступ к дискетам. Теперь можно и с них считать данные и записывать на них, хотя эмуляторы будут понимать только диски без защиты. Зато другими утилитами (например, Teledisk под DOS) вполне можно сделать образы дискет даже защищённых от копирования. А также существуют программы для прямого обращения к содержимому дискет TR-DOS, например, Spectrum Navigator в DOS или плагины для FAR в Windows. И даже если использовать настоящий Спектрум с дискетами, то наличие подобного ПК здорово упрощает жизнь спектрумиста.

На будущее осталось избавится от Windows XP и остаться на FreeDOS, но для этого надо бы решить вопрос со звуком. В идее подобрать подходящую аудиокарту для slim-корпуса я уже разочаровался, но зато меня зацепил интересный вариант, который я заметил в эмуляторе Real Spectrum - вывод звука музыкального сопроцессора AY через LPT-порт. Оказывается есть и такое, люди собирают подобные схемы :

Звук на чипе AY-3-8910 (или Yamaha YM2149F) родом с ZX Spectrum на PC через LPT-порт Звук на чипе AY-3-8910 (или Yamaha YM2149F) родом с ZX Spectrum на PC через LPT-порт

Сам я, пожалуй, даже такое не спаяю (да и запчастей нет), но у одного умельца я заказал изготовление такой штуки, и как только она будет сделана, попробую её прикрутить либо снаружи, либо внутри корпуса ПК, благо там есть и внутренний разъём LPT и питание от USB, а звук можно вывести на внешний разъём корпуса.

Так что периферия ZX Spectrum (дисководы и звук) потихоньку у меня переходит из чистой эмуляции в железную реализацию. Всё только начинается!

EmuZWin v2.7 release 2.8 Один из лучших эмуляторов спекки, поддержка кучи моделей, игр красочностью в 256 цветов и многое другое. Fuse v1.6.0
  • Accurate 16K, 48K, 128K, +2, +2A and +3 emulation.
  • Working +3e, SE, TC2048, TC2068, TS2068, Pentagon 128, Pentagon "512" (Pentagon 128 modified for extra memory), Pentagon 1024 and Scorpion ZS 256 emulation.
  • Runs at true Speccy speed on any computer you're likely to try it on.
  • Support for loading from .tzx files, including accelerated loading.
  • Sound (on Windows and Mac OS X, and on systems supporting ALSA, the Open Sound System, SDL or OpenBSD/Solaris's /dev/audio).
  • Kempston joystick emulation.
  • Emulation of the various printers you could attach to the Spectrum.
  • Support for the RZX input recording file format, including 'competition mode'.
  • Emulation of the DivIDE, Interface I, +D, Beta 128, Kempston mouse, Spectrum +3e, ZXATASP and ZXCF interfaces.
MESS v0.152 MESS — мультисистемный эмулятор. Версия для Windows. Real Spectrum v0.97.26 RealSpectrum - это прекрасный эмулятор ZX Spectrum. По словам автора, это эмулятор, который эмулирует ZX Spectrum с невиданной аккуратностью. Верим. Эмулятор Sinclair ZX Spectrum 16kB / 48kB / 128kB, Spectrum +2 / +2A / +3 и Timex Sinclair TC2048 / TS2068. SpecEmu v2.8 build 10.10.09 Spectaculator v8.0 Ещё один хороший эмулятор ZX Spectrum.
30 дней пробного использования, цена продукта £9.99/11.99€/15.99USD UnrealSpeccy v0.38.0 UnrealSpeccy - это лучший эмулятор ZX Spectrum под Windows. Имеет кучу всяких настроек, есть поддержка TV-Mode и много чего ещё, всего и не перечислить. Z80Stealth v1.23 Новая версия старого досовского русского эмулятора ZX Spectrum. Теперь под Windows! :) Ziggy v0.4
  • 100% accurate… oh ok then, highly accurate 48k and 128 emulation. Not kidding. ;)
  • Support for both the beeper and multi-channel AY sound.
  • DirectX and GDI support. Works best with DirectX though.
  • Support for snapshots (sna, szx, z80) and tapes (pzx, tzx, tap, csw)
  • Save screenshots from emulator in bmp, png, gif and jpeg format.
  • Debugger with stepping facility.
  • Tape browser with support for accelerated loading via various (read 2) means.
  • Ability to run files from command line, drag and drop. If file associations are enabled, double-clicking from explorer will launch Ziggy.
  • Supports issue 2 keyboards, late timings and a host of other speccy idiosyncracies.
  • Full screen mode.
  • ULA Plus support.
ZXSpin v0.7s Спектрамин v.1.01b

Первый релиз эмулятора Спектрамин, с минимальным функционалом, для публичного тестирования качества эмуляции и совместимости с играми и демками. Управление - контекстное меню (правый клик мышью) и хоткеи (см. в меню).

Приоритеты при разработке:
1) удобство использования;
2) точность эмуляции - z80, задержки, порты, недокументированные особенности.
Из периферии, кроме кэмпстона на стрелках+TAB, и ULAplus, на данный момент ограниченно поддерживается TR-DOS (trd, scl и hobeta) и +3DOS (.dsk), в рамках возможностей dll-ек от эмулятора SpecEmu (Mark Woodmass разрешил их использовать, за что ему большое спасибо).

Эмулятор распространяется как донейшнваре, то есть бесплатный, но если есть желание поддержать разработку донатом, реквизиты в About эмулятора.
Точно работает под Windows 7 32 и Windows XP 32, под другими ОС не проверял.
Игры и демки, идущие вместе с релизом выбраны достаточно произвольно, из того, над чем возился, и что попадалось под руку.
Любые указания на ошибки и несовместимость/незагружаемость/неработоспособность, пожелания по функционалу и интерфейсу, и т.п., будут полезны.

Как мы выяснили в предыдущей части, машинные коды игры загрузить с дискеты непосредственно по адресу назначения нельзя. Мы загрузим их в другое место, а после загрузки переместим куда нужно. Кроме этого, мы хотим сделать моноблочный загрузчик, когда и загрузчик и загружаемые данные находятся в одном бейсик-файле. Такой загрузчик можно написать только в машинных кодах. При этом, поскольку файл у нас моноблочный, загрузчик в машинных кодах нужно будет поместить в комментарии к загрузчику на бейсике.

Floppy 5.25"

Итого, получается следующая многоходовка:

  1. Из бейсика передаём управление программе в машинных кодах.
  2. Программа в машинных кодах переносит загрузчик из области бейсика в другую область, которую не затронут машинные коды игры, и передаёт управление ему.
  3. Загружаем и распаковываем загрузочную картинку.
  4. Загружаем машинные коды игры в область, не перекрывающую область системных переменных.
  5. Переносим машинные коды по адресу назначения.
  6. Передаём управление программе.

Разработку придётся начать с середины (пункт 3). Дело в том, что для того, чтобы написать программу перемещения, нужно знать размер перемещаемой программы, а чтобы встроить машинные коды в бейсик, нужно знать размер программы перемещения.

Моноблочный загрузчик (часть в машинных кодах)

* — см. сжатие загрузочной картинки в предыдущей части;
** — распаковщик релоцируемый, так что загружать можно куда угодно.

Аналогичным образом загружаем машинные коды игры:

На этом этапе TR-DOS нам больше не нужен, можно перенести машинные коды по адресу назначения, используя инструкция процессора LDIR :

Ну и в конце концов передаём управление программе тем же образом, как и в оригинальном загрузчике — через перемещение указателя стека:

Теперь, когда код загрузчика готов, нужно скомпилировать его, чтобы знать его размер, который понадобится нам дальше.

Процедура перемещения загрузчика

Загрузчик занимает 44 байта. Теперь нужно написать процедуру перемещения загрузчика из комментариев в бейсике (пункт 2 списка в начале статьи). Заковыка состоит в том, что адрес, по которому располагается область бейсика, может меняться в зависимости от подключённой к компьютеру периферии, поэтому, чтобы определить, откуда нужно переносить данные, нужно ориентироваться или на системную переменную PROG (так же как в оригинальном загрузчике) или на программный счётчик (регистр процессора PC ).

К программному счётчику нельзя так просто доступиться — никаких инструкций процессора вроде LD HL, PC не существует. Решение я подсмотрел в Laser Compress и выглядит оно так (не особо целевое использование процедуры UNSTACK_Z ):

Далее компонуем процедуру перемещения с загрузчиком (см. готовый файл), который она будет перемещать и снова компилируем. Должно получиться 56 байт.

Здесь нужно заметить, что уже после того, как я написал этот кусок, я разобрался, что с вместо вычисления длины перемещаемой программы можно было использовать метки и дать ассемблеру самому во всём разобраться. Но для исторической справедливости оставим всё как есть.

Моноблочный загрузчик (часть на бейсике)

Теперь, когда мы знаем размер загрузчика в машинных кодах, можно написать загрузчик на бейсике и собрать всё в моноблочный файл.

Машинные коды в бейсик-файл встраивают или в комментарии, или в конец файла. Второе обычно затрудняет изучение файла и больше подходит для защиты, поэтому будем использовать первый вариант. Вариант с комментарием выглядит следующим образом:

Если бы для создания загрузчика мы не использовали никаких дополнительных утилит, нужно было бы после REM ввести произвольные символы в количестве не меньшем, чем длина программы в машинных кодах, которую мы хотим поместить на место комментария (в нашем случае 56 байт). После этого туда можно было бы загрузить программу через LOAD "" CODE PEEK 23635+256*PEEK 23636+5 и сохранить файл.

Однако, утилита bas2tap может значительно облегчить процесс, т.к. она может скомпилировать бейсик-файл и встроить в него двоичные данные, если каждый байт представлен в виде шестнадцатеричного числа в фигурных скобках. Для этого прогоним скомпилированный загрузчик через hexdump :

Вывод hexdump вставляем на место комментария в первой строке после REM и компилируем загрузчик на бейсике ( -sboot — имя файла на ленте, -a10 — номер строки автостарта):

Преобразуем загрузчик из формата tap в hobeta через промежуточный формат 0 :

Создание моноблочного файла

К этому моменту все необходимые файлы для создания образа дискеты у нас уже есть. Можно создать и образ и скопировать в него все необходимые файлы:

Принцип следующий: TR-DOS хранит избыточную информацию о размере файлов:

  1. Размер в секторах — используется для размещения файлов на дискете и копирования.
  2. Размер в байтах — используется для загрузки содержимого.

Обычно эти размеры соответствуют друг другу (256 байт на сектор), но это не обязательно. Этим мы и воспользуемся. Если изменить размер boot-файла в секторах на значение, равное суммарному размеру всех файлов, которые мы хотим загрузить, но не изменять размер в байтах, TR-DOS будет копировать все данные как один большой файл, но при этом при загрузке будет загружаться только бейсик-часть.

На настоящем спектруме или в эмуляторе нулевую дорожку можно редактировать программами типа Disk Doctor, например, Hex Disk Editor:

Hex Disk Editor

Но можно сделать и проще: trd-образ — это ничто иное как побайтовая копия всех данных на дискете, поэтому его можно редактировать в любом шестнадцатеричном редакторе:

Теперь у нас есть полноценный образ дискеты с моноблочным файлом. Он должен правильно загружаться и целиком копироваться с дискеты на дискету. Осталось только уменьшить размер образа. Поскольку trd-образ — это побайтовая копия, он всегда занимает 640КБ. На практике в большинстве случаев удобнее использовать формат scl, который больше похож на hobeta хранит непосредственно данные файлов:

Теперь точно всё. Процесс адаптации от начала до конце можно найти в репозитории проекта на гитхабе.

Эмулятор – это специализированное приложение для той или иной операционной системы, которое позволяет имитировать работу эмулируемого устройства, запускать программы, приложения, созданные для этого устройства.

Что такое эмулятор

Популярные форматы файлов для эмулятора ZX Spectrum

tap – содержит в себе образ кассеты с игрой. Некоторые эмуляторы позволяют воспроизвести процесс «загрузки с ленты» для полной имитации работы настоящего компьютера.

tzx – содержит точный образ кассеты с игрой, при этом сохранена информация о длительности пауз, высоте тона, скорости воспроизведения кассеты.

z80 – содержит в себе образ оперативной памяти ZX Spectrum, в которую уже загружена программа. Этот формат позволяет обойти защиту некоторых игр при загрузке.

trd – содержит образ дискеты для в формате TR-Dos. Обычно дискеты содержали сборники игр для Spectrum и сложные демо.

Эмуляторы ZX Spectrum для Windows

Существует несметное количество эмуляторов ZX Spectrum для различных платформ, включая эмуляторы для Windows, эмуляторы для Linux, MacOS. Есть эмуляторы «Спектрума» и для мобильных устройств – смартфонов, портативных игровых приставок. Их такое большое количество, что все перечислить их невозможно. Ниже представлены лучшие эмуляторы Spectrum для Windows.

EightyOne

Замечательный эмулятор, главным достоинством которого является отличная картинка. При этом реализовано множество нюансов изображения старых аналоговых телевизоров, которые использовались в качестве монитора ZX Spectrum – чересстрочная развертка, перекрестные помехи, размытое изображение. Просто рай для настоящего фаната «Спектрума». Впрочем, все эти спецэффекты можно отключить и получить четкое красивое изображение.

  • Поддерживает различные Спектрум-подобные компьютеры: ZX 81, ZX Spectrum 48/128, Spectrum QL, Timex, Amstrad и другие
  • Поддерживаемые форматы файлов: TZX, TAP и Z80
  • Поддерживает музыкальный сопроцессор AY. В играх для ZX Spectrum 128 есть музыка
  • Выводит красивую картинку, похожую на изображение, даваемое настоящим ZX
  • Изображение можно масштабировать
  • Можно сохранять состояние эмулятора в любой момент времени (F12 – Save snapshot…), таким образом, есть возможность сохраняться в играх


EmuZWin

Удобный в использовании эмулятор ZX Spectrum. Настройки по умолчанию дают возможность насладиться игровым процессом. Достаточно открыть образ игры и нажать любую клавишу. Можно наблюдать за процессом загрузки игры как на реальном «Спектруме», или же пропустить этот процесс. Хорошая поддержка музыки AY с возможностью прослушивания стереоканалов. Можно также отобразить клавиатуру в отдельном окне, просматривать содержимое образов кассет и дискет.

  • Поддерживает компьютеры: ZX Spectrum, Pentagon, Scorpion, Profi, ATM
  • Поддерживает файлы: TAP, TZX, Z80, TRD и многие другие
  • Позволяет сохранять скриншоты экранов в PNG
  • Можно изменять скорость эмуляции в широких пределах
  • Есть встроенный браузер кассет, имитация загрузки с ленты
  • Позволяет сохранять картинки рабочего процесса в BMP и звуковое сопровождение в WAV
  • Поддерживает Kempston-джойстик, мышь, ZX Printer


Эмулятор с огромным количеством различных возможностей, опций и настроек. Нужно отметить высокое качество изображения, достигаемое с помощью различных улучшающих, сглаживающих фильтров. Несмотря на низкое разрешение оригинального «Спектрума», эмулятор способен давать качественную гладкую картинку. Кроме того, Fuse дает возможность записывать игровой процесс в специальные файлы RZX, которые затем можно проиграть и посмотреть запись. Поддерживается огромное количество разнообразных периферийных устройств, выпущенных для ZX Spectrum: принтеры, джойстики, мыши, Interface 1-2, Microdrive, дисководы и так далее.

  • Поддерживает компьютеры: ZX Spectrum, Timex, Pentagon, Scorpion
  • Поддерживаемые форматы файлов: TAP, Z80 и другие
  • Позволяет просматривать скриншоты SCR
  • Картинку можно масштабировать с различными фильтрами для повышения четкости
  • Реализована поддержка различной периферии, Kempston-джойстика, мыши, ZX-принтера, Interface 1 и MDR
  • Позволяет вести запись игрового процесса RZX
  • Умеет работать с дискетами различных форматов


SpecEmu

Этот эмулятор имеет минимум настроек. Буквально «открой файл и играй». Но вместе с тем он оставляет хорошее впечатление от процесса. Для любителей разбираться в чужом коде есть встроенный дебаггер, позволяющий просматривать состояние процессора, памяти, наблюдать за тем, как работает выполняемая в данный момент программа.

Читайте также: