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

Расположенная в рабочем пространстве 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
, 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

Клавиатура 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

Виртуальная Kempston-мышь

Шар и три кнопки над ним, расположенные справа от клавиатуры представляют собой виртуальную Kempston-мышь (или трекбол?). Данный шар можно тягать зажатой левой кнопкой мыши в разные стороны, посылая эмуляторы соответствующие команды. Кнопки пояснений не требуют, за исключением того, что их нажатие можно эмулировать также, кратковременно кликая на шар.

Мышь IBM PC

Если в вашем браузере есть поддержка захвата мыши, то можно кликнуть левой кнопкой мыши по виртуальному дисплею и управлять виртульным указателем внутри эмулятора своей обычной мышью. Следует только помнить, что для хранения каждой из координат указателя в Kempston-мыши испльзуется по одному байту. Поэтому быстрые перемещения указателя (особенно при большом DPI) спровоцирует невозможность эмулируемым программам обнаружить корректное смещение виртуальной мыши, что выразится в прыжках виртуального указателя. Выход из режима захвата мыши обычно реализована через клавишу Escape.

С чего начать

Вставьте дискетту по вашему выбору в виртуальный привод A. Стрелками выберите пункт TR-DOS и нажмите Enter. Далее нажмите на клавишу R (появится команда RUN) и ещё раз нажмите Enter. Удачи! ;)

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

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

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

Проект некоммерческий, с открытым исходным кодом движка, распространяемым под лицензией MIT.

Выражаю огромную благодарность автору проекта ZX-Art за проделанную им работу и возможность использования собранной им базы ПО к ZX Spectrum.

Используемые сторонние разработки (большое спасибо их авторам!):

ayumi-js Author: Peter Sovietov
Javascript version: Alexander Kovalenko
MIT license
zip.js Copyright (c) 2023, Gildas Lormeau BSD 3-Clause License
pako Authors: Andrey Tupitsin, Vitaly Puzrin
(Original zlib implementation is by Jean-loup Gailly and Mark Adler)
MIT License
Knockout Copyright (c) 2010 Steven Sanderson, the Knockout.js team, and other contributors MIT license
jQuery Copyright OpenJS Foundation and other contributors MIT license

Комментарии приветствуются по адресу xmypuk1985@mail.ru