JPP — эмулятор ZX Spectrum для ПК

ZX Land #04

Эмуляторы ZX Spectrum

Часть первая

ZX Spectrum — самый симпатичный из компьютеров — дождался появления программ, способных эмулировать его работу почти на всех серьёзных 16-битных машинах (IBM, AMIGA, ATARI ST/TT), а также на 8-битных компьютерах: ACORN ARCHIMEDES, SAM COUPE и C-64. Правда, последний из них эмулирует только ZX BASIC, что почти на 99,9% исключает возможность пользоваться программами, доступными для SPECTRUM.

Обзор я начну с эмуляторов для PC.

Первый из них, под названием JPP, эмулирует модель с 48 кБ. Его аппаратные требования довольно высоки: процессор 386 или более мощный, видеокарта VGA.

Автор JPP — норвежский программист Arnt Gulbrandsen. Его эмулятор распространяется бесплатно.

В состав пакета входят:

  1. jpp — собственно эмулятор;
  2. pjpp (perfect-jpp) — только для очень быстрых процессоров 486SX/486DX;
  3. spconv — конвертер для передачи данных между файлами разных форматов, позволяющий работать с другими эмуляторами;
  4. specdisc — полезный инструмент для передачи данных с ZX Spectrum. Он читает форматы дискет SAM COUPE и популярного в Англии дисковода PLUS D.

В пакет также включены файлы с образами ROM, в которых исправлены ошибки стандартной ПЗУ.

Сердце всей системы — процессор Z-80. К сожалению, эмуляции процессора в JPP можно предъявить следующие претензии:

  • команды, связанные с регистром R, работают неправильно;
  • команда LDIR выполняется дольше, чем другие команды;
  • два «неиспользуемых» бита регистра могут нарушить работу программы, если она их задействует (физически этих битов нет);
  • обработка прерываний задерживается после выполнения инструкций CALL, JR, JP и RET.

Перечисленные недостатки, однако, не мешают примерно 90% программ правильно работать в JPP.

Для отображения графики используется режим 320 × 240 с 16 цветами. Частота обновления экрана составляет 16,67 Гц (в оригинале — 50 Гц). Поэтому некоторые программы, использующие BORDER как дополнительную часть экрана, будут выглядеть не так, как на оригинальном SPECTRUM.

Бит порта 254, отвечающий за появление звука, перенаправлен на встроенный в каждый IBM PC динамик — PC Speaker, и тот вполне справляется со своей ролью.

KEMPSTON эмулируется стандартным джойстиком.

Передача программ между JPP и SPECTRUM перестаёт быть проблемой, если у нас есть дисковод PLUS D или MICRODRIVE. Последний способ связан с передачей данных через разъём RS-232. Хотя это медленный и неудобный способ, при отсутствии упомянутого оборудования он остаётся единственным.

Большим удобством стал бы программный интерфейс для магнитофона. Автор обещает добавить его в следующих версиях эмулятора.

JPP сохраняет программы, создавая файл с расширением .SNA размером 49178 байт. Первые 27 байт — это заголовок, содержащий значения всех регистров, цвет рамки и прочие данные. Остальные байты занимают 48 кБ несжатой памяти RAM.

К сожалению, нельзя записывать отдельные блоки памяти, например с помощью SAVE "dupa" SCREEN$. Это серьёзное неудобство для тех, кто пишет отдельные процедуры, которые затем будут собираться для разных адресов памяти.

Эмулятор можно получить в редакции ZX LAND или заказать по сети:

********************
* ARNT GULBRANDSEN *
KOMETV.8
* N-7036 TRONDHEIM *
NORWAY
********************

Следующий эмулятор, который я опишу, — SPECEM, созданный Kevin J. Phair. Он завершил работу над ним в 1992 году, выпустив версию 1.4.

Программа предъявляет уже несколько меньшие требования к оборудованию: процессор как минимум 286 с видеокартой EGA или лучше. Очень проста в использовании.

Эмуляторы ZX Spectrum

В ПЗУ заменили процедуры LOAD/SAVE для работы с магнитной лентой на процедуры для работы с жёстким диском. Это позволяет записывать и считывать файлы так же, как на магнитной ленте; это большое удобство по сравнению с форматом записи в ранее описанном эмуляторе.

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

В комплект входит небольшая программа PDEX, позволяющая конвертировать формат PLUS D. Вместе с эмулятором прилагаются рекламные материалы игр MIDNIGHT RESISTANCE, BATTY, POOL и других.

Программа бесплатная.

Адрес автора:

********************
KEVIN J. PHAIR
* 28 BANCROFT ROAD *
TALLAGHT
DUBLIN 24
UNITED KINGDOM
********************

Следующую часть статьи я посвящу лучшему из эмуляторов для PC — Z80, который:

  • эмулирует модели 48kB/128kB;
  • включает генератор AY;
  • позволяет загружать через магнитофонный интерфейс программы с системой SPEEDLOCK и другими нестандартными системами;
  • поддерживает игры с уровнями;
  • позволяет отключать прерывания;
  • симулирует MULTIFACE;
  • отображает эффекты в рамке экрана (BORDER) и т. д.

WILL

Поделитесь вашим мнением о статье