ZX Dream - онлайн-эмулятор ZX Spectrum на JavaScript
ZX Spectrum - 8-битный домашний компьютер, разработанный британской компанией Sinclair Research в 1982 году.
Благодаря различным факторам, среди которых простота исполнения, невысокая стоимость, возможность подключения к телевизору и загрузки программ и игр с магнитной ленты,
в последующие годы компьютер получил широкое распространение в мире как в оригинальном исполнении, так и во множестве модификаций и клонов, где зачастую добавлялись
дополнительные аппаратные и программные возможности, т.к. расширенная память, загрузка программ с накопителей на гибких магнитных дисках, музыкальный сопроцессор и многое другое.
Под ZX Spectrum былы написаны тысячи программ и игр, создана огромная библиотека музыкальных и графических работ, которая пополняется и по сей день.
ZX Dream эмулирует ряд устройств оригинального ZX Spectrum и его модификаций.
Благодаря этому, вы можете открывать многочисленные программы и выполнять их прямо в браузере, используя стандартные клавиатуру, мышь, монитор и колонки.
При этом возможна загрузка из множества форматов как образов дисков или кассет, так и снапшотов.
Реализована эмуляция следующего оборудования:
процессор Z80 (включая большинство недокументированных особенностей)
ПЗУ с переключением страниц 48/Turbo/128/TR-DOS
ОЗУ общим объемом 512 Кб, реализованное по схеме Pentagon (через порт #7FFD)
интерфейс Beta Disk
кассетный проигрыватель
дисплей с возможностью переключения отображения из 5 или 7 страницы памяти (через порт #7FFD)
40-клавишная клавиатура
Kempston-мышка (виртуальная + захват при клике на дисплей)
музыкальный сопроцессор AY-3-891x/YM2149 (+ Бипер, + Turbo Sound) (Требуется производительная система. Рекомендуются Edge или Chrome.)
Другие возможности:
загрузка с форматов лент TZX (включая большинство нестандартных загрузчиков) и TAP (и ему подобных)
открытие и сохранение образов в форматах TRD, FDI, SCL, TD0, UDI (можно использовать эмулятор как конвертер образов.)
открытие образов прямо из архивов zip
открытие снимков SNA, Z80
сохранение снимков SNA
выбор способа отрисовки ( putImageData, drawImage, WebGL ) и масштабирования
выбор способа вывода звука ( ScriptProcessorNode, WorkletNode )
вариант запуска эмуляции в отдельном потоке
возможность выбирать место расположения виртуального экрана и клавиатуры
Управление
Виртуальная клавиатура
Расположенная в рабочем пространстве 40-клавишная клавиатура дает контроль над эмулятором подобно реальной клавиатуре ZX Spectrum.
Клик по клавише левой кнопкой мыши дает команду её нажатия. Используя колесо мыши, виртуальные клавиши можно "зажимать" как
до нажатия любой следующей клавиши (колесо вверх), так и до явного повторного нажатия на "зажатую" клавишу (колесо вниз).
Саму клавиатуру (впрочем, как и дисплей) можно перетащить в любое место рабочей области.
Каждая клавиша (как и в оригинале) может иметь несколько назначений, меняющихся как в зависимости от режима, в котором находится системная оболочка эмулятора,
так и от зажатых в этот момент дополнительных клавиш Caps Shift (CS) и Sysmbol Shift (SS):
В режиме ввода ключевых слов (K) нажатие на клавишу добавит одно из ключевых слов, обозначенных внутри кливиши под основным символом.
В режиме ввода литеры (L) нажатие добавит основной символ. Caps Shift даст здесь дополнительный контроль над регистром вводимых символов.
Нажатие Symbol Shift в любом из вышеперечисленных режимов позволит ввести специальные символы, а также некоторые ключевые слова, показанные справа от основного символа.
Одновременное нажатие Symbol Shift и Caps Shift включает режим "редактирования" (E).
В режиме редактирования нажатие на клавишу (кроме цифровых) обеспечит ввод ключевых слов, отображенных зеленым текстом над клавишами.
В режиме редактирования нажатие на клавишу одновременно с любой из клавиш Shift позволит ввести символы и красные ключевые слова, расположенные под клавишами.
Над цифровыми клавишами сверху отображены не вводимые символы, а команды, выполнение которых достигается нажатием соответствующей цифровой клавиши совместно с Caps Shift.
Описанное управление, как правило, используется только в стандартной системной оболочке. В большинстве программ и игр подписанные ключевые слова и режимы не имеют никакого значения.
Ниже представлена таблица часто используемых клавиш и их значений в играх:
Команда/действие
Типичные клавиши
Вверх
Q, K, CS + 7
Вниз
A, M, CS + 6
Влево
O, Z, CS + 5
Вправо
P, X, CS + 8
Огонь
M, BR, CS + 0
Клавиатура IBM PC
Все вышеописанное относится и к управлению с физической клавиатуры IBM PC. Нажатие клавиши физической
клавиатуры будет соответствовать нажатию одной или нескольких клавиш виртуальной клавиатуры (их можно будет увидеть по подсветке).
Большинство клавиш клавиатуры IBM PC соответствуют одноименным клавишам клавиатуры ZX Spectrum. Ниже представлена полная таблица соответствия:
Клавиша IBM PC
Клавиша ZX Spectrum
0 ... 9
0 ... 9
A ... Z
A ... Z
Space
Break
Left Ctrl, Right Shift
Symbol Shift
Left Shift, Right Ctrl
Caps Shift
Caps Lock
Caps Shift + 2
Стрелка влево
Caps Shift + 5
Стрелка вниз
Caps Shift + 6
Стрелка вверх
Caps Shift + 7
Стрелка вправо
Caps Shift + 8
Backspace
Caps Shift + 0
,
Sysmbol Shift + N
, с правым Shift
Sysmbol Shift + R
.
Symbol Shift + M
. с правым Shift
Symbol Shift + T
/
Symbol Shift + V
/ с правым Shift
Symbol Shift + C
:
Symbol Shift + O
: с правым Shift
Symbol Shift + Z
'
Symbol Shift + 7
' с правым Shift
Symbol Shift + P
-
Symbol Shift + J
- с правым Shift
Symbol Shift + 0
=
Symbol Shift + L
= с правым Shift
Symbol Shift + K
Виртуальная Kempston-мышь
Шар и три кнопки над ним, расположенные справа от клавиатуры представляют собой виртуальную Kempston-мышь (или трекбол?).
Данный шар можно тягать зажатой левой кнопкой мыши в разные стороны, посылая эмуляторы соответствующие команды.
Кнопки пояснений не требуют, за исключением того, что их нажатие можно эмулировать также, кратковременно кликая на шар.
Мышь IBM PC
Если в вашем браузере есть поддержка захвата мыши, то можно кликнуть левой кнопкой мыши по виртуальному дисплею и управлять
виртульным указателем внутри эмулятора своей обычной мышью. Следует только помнить, что для хранения каждой из координат
указателя в Kempston-мыши испльзуется по одному байту. Поэтому быстрые перемещения указателя (особенно при большом DPI)
спровоцирует невозможность эмулируемым программам обнаружить корректное смещение виртуальной мыши, что выразится в прыжках
виртуального указателя.
Выход из режима захвата мыши обычно реализована через клавишу Escape.
Игровые контролеры
Подключенные игровые контролеры (джойстики) могут быть сопоставлены как с интерфейсом Kemoston-джойстика, так и с популярными
наборами клавиш, зачастую используемыми в софте ZX Spectrum: Sinclair, Cursor, QAOPM, QAOPSpace. Поменять сопоставление уже
подключенного контролера возможно через диалоговое окно Настройки.
С чего начать
Вставьте дискетту по вашему выбору в виртуальный привод A. Стрелками выберите пункт TR-DOS и нажмите Enter. Далее нажмите на клавишу R (появится команда RUN) и ещё раз нажмите Enter. Удачи! ;)