Эмуляторы 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. Его эмулятор распространяется бесплатно.
В состав пакета входят:
jpp— собственно эмулятор;pjpp(perfect-jpp) — только для очень быстрых процессоров 486SX/486DX;spconv— конвертер для передачи данных между файлами разных форматов, позволяющий работать с другими эмуляторами;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
Поделитесь вашим мнением о статье