ZX Dream - онлайн-эмулятор ZX Spectrum на JavaScript

ZX Spectrum - 8-битный домашний компьютер, разработанный британской компанией Sinclair Research в 1982 году. Благодаря различным факторам, среди которых простота исполнения, невысокая стоимость, возможность подключения к телевизору и загрузки программ и игр с магнитной ленты, в последующие годы компьютер получил широкое распространение в мире как в оригинальном исполнении, так и во множестве модификаций и клонов, где зачастую добавлялись дополнительные аппаратные и программные возможности, т.к. расширенная память, загрузка программ с накопителей на гибких магнитных дисках, музыкальный сопроцессор и многое другое. Под ZX Spectrum былы написаны тысячи программ и игр, создана огромная библиотека музыкальных и графических работ, которая пополняется и по сей день.

ZX Dream эмулирует ряд устройств оригинального ZX Spectrum и его модификаций. Благодаря этому, вы можете открывать многочисленные программы и выполнять их прямо в браузере, используя стандартные клавиатуру, мышь, монитор и колонки. При этом возможна загрузка из множества форматов как образов дисков или кассет, так и снапшотов.

Реализована эмуляция следующего оборудования:

Другие возможности:

Управление

Виртуальная клавиатура

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

Каждая клавиша (как и в оригинале) может иметь несколько назначений, меняющихся как в зависимости от режима, в котором находится системная оболочка эмулятора, так и от зажатых в этот момент дополнительных клавиш Caps Shift (CS) и Sysmbol Shift (SS):

Описанное управление, как правило, используется только в стандартной системной оболочке. В большинстве программ и игр подписанные ключевые слова и режимы не имеют никакого значения. Ниже представлена таблица часто используемых клавиш и их значений в играх:

Команда/действие Типичные клавиши
Вверх 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. Удачи! ;)