© Иван Рощин, Москва
| : bestview@mtu-net.ru | |
| WWW | : http://www.ivr.da.ru |
(«Программист» 8/2001)
Да, вы всё правильно прочитали; именно ZX Spectrum. Вы наверняка
В наше время, когда самые современные вычислительные системы считаются
устаревшими через считанные месяцы, ZX Spectrum настоящий
долгожитель: с момента его появления на свет прошло почти два десятка лет, но
им продолжают пользоваться и не
Родина ZX Spectrum Англия. Именно там, в апреле 1982 года,
компьютер, разрабатывавшийся компанией Sinclair Research LTD под кодовым
названием ZX82, был впервые представлен публике. Технические характеристики
даже по тем временам не очень впечатляли (процессор Z80 3,5 МГц;
16 КБ ROM; 16 или 48 КБ RAM; видео 256*192 16 цветов; подключается к
телевизору; накопитель на магнитной ленте). Зато ZX Spectrum был дёшев, и
быстро завоевал рынок: только в Англии уровень продаж достигал
В конце 1985 года была выпущена более совершенная модель, ZX Spectrum 128: с трёхканальным музыкальным сопроцессором, увеличенной до 128 КБ памятью (в которой появилась вторая видеостраница) и улучшенным интерпретатором Бейсика.
В конце
Постепенно компьютеры стали оснащать дисководами, в некоторых моделях
появились и другие дополнительные возможности: больший размер ОЗУ,
совместимость с CP/M, дополнительные графические режимы, возможность работы с
винчестером и модемом
Некоторые модели
Вот таким ZX Spectrum вошёл в третье тысячелетие.
Об архитектуре ZX Spectrum я расскажу довольно кратко, более подробно останавливаясь лишь на особенно интересных деталях.
Процессор. Как уже упоминалось выше, называется он Z80. Разрядность
шины данных 8 бит, шины адреса 16. Регистры общего
назначения
Общение с внешними устройствами происходит посредством портов
Память. Z80 может непосредственно адресовать лишь 64 КБ памяти.
В ZX Spectrum нижние 16 КБ занимает ПЗУ, верхние 48 КБ
ОЗУ. Поддержка большего объёма памяти осуществляется с помощью страничного
механизма: память разделена на
Представление графики. Это, пожалуй, наиболее оригинальная деталь
архитектуры ZX Spectrum.
Каждая точка кодируется одним битом в области пикселов. Изображение разбито
на знакоместа (8*8 пикселов), каждому из которых соответствует один байт в
области атрибутов: там кодируются цвета ink (включённых пикселов) и paper
(выключенных пикселов), а также признаки повышенной яркости и мерцания. Таким
образом, фактически мы имеем не настоящее цветное изображение, а раскрашенное
По краям изображения расположена область одного цвета бордюр. Дело в том, что ZX Spectrum проектировался с расчётом на подключение к телевизору, а там высоки искажения по краям экрана.
При программировании вывода на экран имеется возможность синхронизации с кадровой разверткой (импульс маскируемого прерывания приходит как раз в момент начала прорисовки очередного кадра), благодаря чему обеспечивается исключительная плавность анимации.
Дисковый интерфейс. Их разработано несколько, но в странах СНГ получил распространение лишь один Beta Disk. Он позволяет использовать от 1 до 4 дисководов 5,25" или 3,5", и работать с двойной плотностью записи. Основа интерфейса микроконтроллер ВГ93, выполняющий элементарные операции (позиционирование, чтение/запись сектора ). Операции чтения и записи происходят при непосредственном участии центрального процессора.
Музыкальный сопроцессор (AY8910/12 или YM2149F) простой
трёхканальный
Клавиатура 40 или 58 клавиш, и ничего
Джойстики. К ZX Spectrum могут быть подключены один или два джойстика, состоящих из перемещаемой в четырёх направлениях рукоятки и единственной кнопки.
Мышь. Обычно используют так называемую пассивную мышь, т.е. не генерирующую прерываний (интерфейс Kempston mouse). Её координаты можно прочесть в любой момент времени, и при синхронизации перерисовки курсора мыши с кадровой развёрткой курсор будет двигаться очень плавно (в отличие от PC там, если приглядеться, видно, что курсор при движении как бы раздваивается).
Программы для ZX Spectrum можно писать на Бейсике (его интерпретатор находится в ПЗУ), а также на других языках высокого уровня (Паскаль, C, Лисп, Пролог, Форт ), но они используются весьма редко. Для создания большинства «серьёзных» программ применяют ассемблер: только так можно добиться небольшого размера программы (ведь память ZX Spectrum невелика, а в ней должно ещё остаться место для данных) и высокой скорости её работы (вспомним о низком быстродействии).
Как пишут программы на ассемблере? Обычно для этого используется интегрированная среда: редактор, компилятор (далее я буду называть всё это одним словом «ассемблер») и отладчик.
Различных ассемблеров существует более десятка. Одно из важных требований к
ним чтобы скорость компиляции была как можно выше, а расход памяти
на хранение исходного текста компилируемой программы как можно
меньше. Для этого исходный текст обычно хранится в специальном
«токенизированном» формате, за счёт чего его объём сокращается в
Отладка программ производится, естественно, с помощью отладчика. Обычно используется отладчик STS, который может применяться как вместе с ассемблером (тогда при отладке можно видеть вместо числовых значений меток символьные), так и отдельно (если, скажем, для ассемблера уже не хватает места в памяти).
На рис. 1. вы можете видеть исходный текст простой программы очистки экрана, набранный в ассемблере ZX ASM, а на рис. 2 показано, как эта программа, будучи уже откомпилированной, выглядит в отладчике STS.
|
|
Если в компьютере установлено ПЗУ
Разумеется, имея в своем распоряжении PC, можно использовать для написания
спектрумовских программ
Написание программ для ZX Spectrum на ассемблере без преувеличения можно назвать настоящим искусством. Чтобы программы получались короткими и быстрыми, приходится использовать множество приёмов оптимизации, подчас весьма необычных:
В общем, обо всех хитростях рассказать просто невозможно!
Говорят, что компьютер умирает, когда для него перестают писать программы.
По этому критерию ZX Spectrum вполне жизнеспособен: для него существует
огромное количество самых разнообразных программ, и каждую неделю появляется
Хотя современные
Рассказать обо всём разнообразии программ, к сожалению, не позволяет объём статьи; поэтому подробнее остановлюсь лишь на одной категории играх. Не секрет, что именно игры часто привлекают внимание к компьютеру; именно благодаря огромному их количеству многие приобретали ZX Spectrum, а программировать начинали уже потом; зачастую чтобы вставить «бессмертие» в понравившуюся игру
Подавляющее большинство игр зарубежные. Точное их количество
подсчитать невозможно, но ориентировочно
|
|
Если раньше эти игры доходили до пользователя, пройдя через руки хакеров
(порой лишившись заставки и дополнительных уровней), то теперь можно сыграть в
оригинальные версии, разыскав их в интернете в виде
Небольшая, но лучшая часть игр создана программистами из
О системных программах расскажу лишь вкратце. На ZX Spectrum имеются и
текстовые редакторы (в одном из них я сейчас пишу эту статью), и графические,
и музыкальные (так называемые «трекеры»); коммуникационные
программы, средства разработки (ассемблеры, отладчики), служебные утилиты
(файловые оболочки, архиваторы, конверторы
). Почти всегда есть
возможность выбора из
С помощью эмуляторов можно запускать программы для ZX Spectrum на более мощных компьютерах таких, как PC или AMiGA. Эмуляторов существуют десятки (значительная часть из них написана нашими соотечественниками); отличаются они друг от друга качеством эмуляции, количеством поддерживаемых форматов хранения спектрумовских программ, уровнем системных требований и наличием дополнительных возможностей.
Среди наиболее популярных, по моему мнению, эмуляторов ZX Spectrum для PC могу отметить ZX Emul, R80, X128, RealSpectrum, UKV; для AMiGA CBSpeccy.
В
Есть, разумеется, у эмуляторов и свои недостатки. В точности повторить
работу реального ZX Spectrum часто не получается: то звук «не
такой», то изображение, то ещё
Наиболее эффективно, как видим, совмещать использование реального ZX Spectrum и эмуляторов, делая правильный выбор в каждом конкретном случае.
В интернете для ZX Spectrum можно найти буквально всё: софт, эмуляторы, документацию, описания игр и множество другой полезной информации. Сайтов, посвящённых ZX Spectrum, сотни! Приведу лишь несколько ссылок на наиболее известные:
Во многом именно интернет поддерживает ZX Spectrum «на
плаву», обеспечивая возможность оперативного распространения программ и
обмена информацией. Для пользователя даже с невысоким уровнем доходов не будет
обременительным раз в месяц сходить в
А можно ли выйти в интернет с помощью самого ZX Spectrum? Из того, что
пишут в конференциях, ясно следующее: пока для ZX Spectrum нет программ,
поддерживающих необходимые сетевые протоколы. Однако доступ становится
возможным, если с помощью программы эмулятора терминала
подключиться к другому компьютеру с установленной на нём
Как владельцу ZX Spectrum получить ответ на свои вопросы, поделиться
новостями, поучаствовать в дискуссии, распространить свои разработки? В этом
ему могут помочь электронные средства коммуникации. В интернете
Есть у спектрумистов и своя сеть ZXNet. В ней существуют конференции, посвящённые программированию (CODE.ZX), аппаратному обеспечению (ZX.HARDWARE), обсуждению софта (ZXNET.SOFT), игр (SPBZXNET.GAMES), музыки (MUSIC.ZX), и другие.
Чтобы подробно рассказать о том, что такое demoparty, потребуется отдельная большая статья, поэтому буду краток. Программисты, компьютерные художники и музыканты хотят сравнить свои творения кто лучше? Зрители хотят увидеть новые работы и пообщаться. И вот они собираются, просматривают работы, голосуют и определяют победителей.
Обычно на demoparty проводятся такие конкурсы (compo): Demo (графические эффекты под музыку, часто связанные общей идеей), Intro (почти то же, но с ограничением размера программы для ZX Spectrum чаще всего 512 байт, 1 КБ, 4 КБ, 16 КБ), а также конкурсы Graphic, Music и другие.
Вот некоторые demoparty 2000 года, на которых был представлен ZX Spectrum:
Forever 2e3 (Trencin, Словакия), Paradox
В этом году уже прошли demoparty «Forever», «ASCii», «Paradox», «Millennium»; объявлено о том, что состоится «Chaos Constructions». И это не считая чисто виртуальных party, когда распространение работ и голосование происходит посредством компьютерных сетей.
Обзор будет неполным без упоминания о средствах массовой информации, посвящённых ZX Spectrum и/или издающихся на этой платформе.
В моей неполной коллекции насчитывается более 80 электронных газет и журналов для ZX Spectrum. Не все они издаются сейчас, но вместе с тем появляются и новые! Почти в каждом крупном городе выходит своя электронная газета, а бывает, что и не одна. Благо выпуск таких изданий дело не очень сложное; были бы материалы. Да и с распространением проблем не возникает: обычно свежие выпуски рассылаются по сетям (Internet, FIDONet, ZXNet) и выкладываются на спектрумовские сайты.
Известные мне печатные издания журнал «Радиолюбитель. Ваш компьютер», регулярно отдающий примерно четверть объёма под материалы о ZX Spectrum, и выходящая в Вологде газета «Абзац», полностью посвящённая ZX Spectrum.