Code Page: <MAC> <Translit> <ISO> <Win-1251>
<Alt-866>
<KOI8-R>
(с) 1996, 1997 MOA
SPM -- это эмулятор-отладчик ZX Spectrum-совместимого компьютера.
Причем, это скорее более отладчик, нежели эмулятор.
При создании программы ставилась единственная цель -- облегчить
себе жизнь. То есть, SPM предназначался прежде всего для удовлетворения моих личных
узкоспециальных (и может быть даже где-то корыстных) целей. Поэтому, часть функций,
обязанных быть в "нормальном" эмуляторе, до сих пор отсутствует. SPM более-менее
полно эмулирует архитектуру компьютера Scorpion и в настоящее время используется
для разработки программ именно для него.
Изначально программа не задумывалась как большой и всеобъемлющий
эмулятор -- так, маленькое подспорье, и дописывалась от случая к слючаю. Никаких
попыток серьезно рассмотреть программу в целом не предпренималось. Планировалось,
впрочем, что рано или поздно надо будет сделать что-то приличное, но было не до
этого. Постепенно отладчик разрастался, вбирая в себя все новые и новые возможности,
и вот, начиная с какого-то момента сложность программы превысила мои скромные возможности.
Поэтому на сегодняшний день работа над версиями SPM 1.x "приторможена",
и начата работа над версиями SPM 2.x, которые будут более "систематизированы",
смогут эмулировать новые устройства Scorpion, и, кроме всего прочего, некоторые
мои проекты. Версии 2.x, хотя и используют большую часть кода 1.x, пишутся "с
нуля" и когда появятся (если появятся :) будут представлять другой "продукт".
Однако работы оказалось несколько больше, чем я расчитывал, поэтому какие-то вещи
будут делаться и в версиях 1.x.
В предлагаемой демонстрационной (БЕСПЛАТНОЙ) версии 1.03 отключены
(отсутствует часть кода) функции, специфичные для коммерческих приложений эмулятора,
и для команд, модифицируемых в настоящее время. Распространение коммерческой версии
SPM планируется, однако это напрямую зависит от общего интереса и механизмов защиты,
которые, опять-таки, сейчас прорабатываются. Цель демо-версии -- во-первых, тестирование
программы на компьютерах различной архитектуры и комплектующих, и, во-вторых, все-таки
возможно использование системы как комплекса для кросс-отладки программ. Именно
такое использование я считаю комерческим, и для заинтересованных лиц в конце документа
приведены мои координаты :)
|
Рис. 1. Отладчик SPM
|
Для работы эмулятору необходимо:
-
компьютер совместимый с IBM PC 486 (желательно от DX2-66 и выше). Есть некоторые
ограничения на процессор AMD, на некоторых экземплярах не работает вывод в окне
реассемблера (все "зависает");
-
не менее 5 Мб на жестком диске (а при эмуляции HDD или таблицы символов -- больше,
намного больше);
-
видеокарта VGA (или Mono-VGA). Точно работает с CL54xx, S3 64V+ и не работает с
Trident;
-
операционная система DOS (v3.30 или выше, хотя проверялось только на 5.00 ;-). Возможно
(и желательно) работа в DOS-окне операционной системы OS/2 Warp 3.0;
-
менеджер EMS-памяти (и объем этой памяти не менее 512 Кб, это только тот объем,
который минимально необходим для эмулирования памяти ZX Spectrum, для быстрой работы
самого эмулятора неплохо добавить еще сколько-то EMS);
-
просто необходим какой-либо дисковый кеш.
SPM эмулирует:
-
четыре варианта аппаратной конфигурации
-
ZX Spectrum
-
ZX Spectrum 128
-
ZS Scorpion 256 (реально проверялся только этот вариант)
-
Z80 Only (здесь необходимо отметить, что различие между "конфигурациями"
весьма условно, и основано на выборе "фиксированных" значений для самой
"объемной" модели, т. е., например, ZX Spectrum отличается от ZX Spectrum
128 только "изначальной" установкой соответствующего бита в системном
регистре 7FFD);
-
экран ZX Spectrum, обновляемый по независимым от эмулятора прерываниям (то есть,
если быстро нарисовать и стереть точку, ее можно не увидеть. "Привязки"
к "эмуляторным" прерывания -- не делается.);
-
клавиатуру ZX Spectrum, с возможностью регулировки времени "удержания"
клавиш (не следует думать, что это большой плюс ;-);
-
дисковый интерфейс Beta Disk (в достаточном объеме для работы ОС TR-DOS или Is-DOS);
-
контроллер внешних устройств SMUC, и в нем:
-
микросхему CMOS-памяти, включая режим часов;
-
жесткий диск.
|
Рис. 2. Использование исходного текста для отладки
|
SPM позволяет:
-
прерывать выполнение программы с клавиатуры;
-
продолжать выполнение программы с прерванного места.
SPM предоставляет:
-
символьный отладчик, с возможностью пошаговой трассировки отлаживаемой программы
на уровне исходных текстов ассемблера; (эта функция отсутствует в демо-версии еще
и по той причине, что толково объяснить, как ей пользоваться пока нет соответствующего
ассемблера, затруднительно, подробнее см. HELP в самом эмуляторе);
-
реассемблер, понимающий все команды микропроцессора Z80;
-
ловушки, срабатывающие при равенстве текущего адреса и регистра PC;
-
ловушки на команды ввода/вывода;
-
операции с блоками памяти;
-
сохранение текущего состояния отладчика.
SPM не предоставляет (надеюсь, пока):
-
момент-ассемблера в окне реассемблера;
-
работу с реальной дискетой в TR-DOS (это свойство может появится только в следующей
версии эмулятора, специально разрабатываемой для работы под OS/2);
-
работу с "хобетовскими" файлами напрямую (спасибо Ю.Родионову, "надоумил",
теперь, вот, не знаю как сделать :);
-
работу с COM-портами контроллера SMUC;
-
удобную работу с менеджером файлов (то, что получилось,хм, несколько забавно и не
соответствует задуманному).
|
Рис. 3. Встроенная система помощи
|
SPM не поддерживает (пока):
-
музпроцессор AY-3-8910/12 (в части формирования звука);
-
генерацию звука через порт 0FEh (вообще никакого звука!);
-
большинство видео эффектов на бордюре (и не будет).
В комплекте с эмулятором поставляется специально откомпилированная версия ПЗУ компьютера
Scorpion. Поскольку SPM эмулирует Scorpion не в полном объеме, то реальное ПЗУ Scorpion
работать не будет. Если Scorpion не интересен, то при запуске (или в конфигурационном
файле) можно указать другое ПЗУ, содержащее коды обычного ZX Spectrum и TR-DOS.
При этом никаких переделок в них делать не нужно.