Zx spectrum сьогодні
Так, ви все правильно прочитали; саме ZX Spectrum. Ви напевно щось вже чули про цю чудову комп'ютері; а може бути, саме на ньому вам довелося написати свою першу програму.
В наш час, коли найсучасніші обчислювальні системи вважаються застарілими через лічені місяці, ZX Spectrum # 151; справжній довгожитель: з моменту його появи на світло пройшло майже два десятка років, але їм продовжують користуватися # 151; і не де-небудь, а головним чином вУкаіни і країнах СНД.
В кінці 80-х # 151; початку 90-х в СРСР почалося масове виробництво Spectrum-сумісних комп'ютерів. Далі, говорячи про ZX Spectrum, я буду мати на увазі і їх (до речі, «сумісних» Spectrum # 146; ів набагато більше, ніж «фірмових»; у мене самого на столі стоїть «Пентагон-128» # 151; одна з «сумісних» моделей # 133;).
Поступово комп'ютери стали оснащувати дисководами, в деяких моделях з'явилися і інші додаткові можливості: більший розмір ОЗУ, сумісність з CP / M, додаткові графічні режими, можливість роботи з вінчестером і модемом # 133; Деякі моделі Spectrum-сумісних комп'ютерів виробляються і зараз. Також розроблені і продовжують розроблятися численні схеми доробок вже існуючих комп'ютерів # 151; що дозволяють збільшити пам'ять, швидкодія, графічні та музичні можливості, підключити різні зовнішні пристрої.
Ось таким ZX Spectrum увійшов у третє тисячоліття.
архітектура
Про архітектуру ZX Spectrum я розповім досить коротко, більш детально зупиняючись лише на особливо цікавих деталях.
Спілкування з зовнішніми пристроями відбувається за допомогою портів введення-виведення. Є можливість обробки переривань двох типів: маскуються і немаскованих.
Кожна точка кодується одним бітом в області пікселів. Зображення розбите на знакомісця (8 * 8 пікселів), кожному з яких відповідає один байт в області атрибутів: там кодуються кольору ink (включених пікселів) і paper (виключених пікселів), а також ознаки підвищеної яскравості і мерехтіння. Таким чином, фактично ми маємо не справжнє кольорове зображення, а розфарбоване чорно-біле.
По краях зображення розташована область одного кольору # 151; бордюр. Справа в тому, що ZX Spectrum проектувався з розрахунком на підключення до телевізора, а там високі спотворення по краях екрану.
При програмуванні виведення на екран є можливість синхронізації з кадровою розгорткою (імпульс замаскованого переривання приходить якраз в момент початку промальовування чергового кадру), завдяки чому забезпечується виняткова плавність анімації.
Дисковий інтерфейс. Їх розроблено кілька, але в країнах СНД набув поширення лише один # 151; Beta Disk. Він дозволяє використовувати від 1 до 4 дисководів 5,25 "або 3,5", і працювати з подвійною щільністю запису. основа інтерфейсу # 151; мікроконтролер ВГ93, що виконує елементарні операції (позиціонування, читання / запис сектора # 133;). Операції читання і запису відбуваються при безпосередній участі центрального процесора.
Музичний співпроцесор (AY8910 / 12 або YM2149F) # 151; простий трьохканальний FM-синтезатор, що має два (в AY8912 # 151; один) двонапрямлених 8-розрядних порту вводу-виводу.
клавіатура # 151; 40 або 58 клавіш, і нічого скільки-небудь цікавого # 133;
Джойстики. До ZX Spectrum можуть бути підключені один або два джойстика, що складаються з переміщуваної в чотирьох напрямках рукоятки і єдиною кнопки.
Миша. Зазвичай використовують так звану пасивну миша, тобто не генерує переривань (інтерфейс Kempston mouse). Її координати можна прочитати в будь-який момент часу, і при синхронізації перемальовування курсору миші з кадрової розгорткою курсор буде рухатися дуже плавно (на відміну від PC # 151; там, якщо придивитися, видно, що курсор при русі як би роздвоюється).
програмування
Програми для ZX Spectrum можна писати на Бейсике (його інтерпретатор знаходиться в ПЗУ), а також на інших мовах високого рівня (Паскаль, C, Лисп, Пролог, Форт # 133;), але вони використовуються досить рідко. Для створення більшості «серйозних» програм застосовують асемблер: тільки так можна домогтися невеликого розміру програми (адже пам'ять ZX Spectrum невелика, а в ній повинно ще залишитися місце для даних) і високої швидкості її роботи (згадаємо про низький швидкодії).
Різних ассемблеров існує більше десятка. Одне з важливих вимог до них # 151; щоб швидкість компіляції була якомога вище, а витрата пам'яті на зберігання вихідного тексту модульна програми # 151; якомога менше. Для цього вихідний текст зазвичай зберігається в спеціальному «токенізірованном» форматі, за рахунок чого його обсяг скорочується в 2 # 151; 3 рази.
Налагодження програм проводиться, природно, за допомогою відладчика. Зазвичай використовується відладчик STS, який може застосовуватися як разом з асемблером (тоді при налагодженні можна бачити замість числових значень міток символьні), так і окремо (якщо, скажімо, для асемблера вже не вистачає місця в пам'яті).
На рис. 1. ви можете бачити вихідний текст простий програми очищення екрана, набраний в асемблері ZX ASM, а на рис. 2 показано, як ця програма, будучи вже скомпільованій, виглядає в отладчике STS.
Якщо раніше ці ігри доходили до користувача, пройшовши через руки хакерів (часом втративши заставки і додаткових рівнів), то тепер можна зіграти в оригінальні версії, розшукавши їх в інтернеті у вигляді tzx-файлів, що містять точну копію інформації, прочитаної з фірмовою касети.
Невелика, але найкраща частина ігор створена програмістами з ex-USSR. Це і гри, перенесені з інших платформ (Prince of Persia, UFO, UFO II, Mortal Kombat), і повністю оригінальні ( «Зоряне спадщина», «Чорний ворон», «Дзеркало», «Crime of the Santa Claus: Deja Vu» ). Зрозуміло, тут я перерахував лише найвидатніші розробки.
За допомогою емуляторів можна запускати програми для ZX Spectrum на більш потужних комп'ютерах # 151; таких, як PC або AMiGA. Емуляторів існують десятки (значна частина з них написана нашими співвітчизниками); відрізняються вони один від одного якістю емуляції, кількістю підтримуваних форматів зберігання спектрумовскіх програм, рівнем системних вимог і наявністю додаткових можливостей.
Серед найбільш популярних, на мою думку, емуляторів ZX Spectrum для PC # 151; можу відзначити ZX Emul, R80, X128, RealSpectrum, UKV; для AMiGA # 151; CBSpeccy.
У чомусь емулятори навіть зручніше реального ZX Spectrum. Так, вони дозволяють зберігати спектрумовскіе програми не на купі дискет або касет, а на вінчестері або компакт-диску # 151; а значить, можна забути про багатогодинні пошуки будь-якої програми і про помилки завантаження. Не обійтися без емулятора і в разі, якщо ви хочете скористатися всім багатством програм, взятих з інтернету: часто вони знаходяться саме в «емуляторние» форматах, перенесення яких на реальний ZX Spectrum представляє значну складність.
Є, зрозуміло, у емуляторів і свої недоліки. У точності повторити роботу реального ZX Spectrum часто не виходить: то звук «не такий», то зображення, то ще що-небудь # 133; Виникають труднощі і з перенесенням програм: буває, що записану на ZX Spectrum дискету не вдається прочитати на PC. Та й клавіатура у PC відрізняється від спектрумовской # 133;
Найбільш ефективно, як бачимо, поєднувати використання реального ZX Spectrum і емуляторів, роблячи правильний вибір в кожному конкретному випадку.
ZX Spectrum і інтернет
В інтернеті для ZX Spectrum можна знайти буквально все: софт, емулятори, документацію, описи ігор та багато іншої корисної інформації. Сайтів, присвячених ZX Spectrum, сотні! Наведу лише кілька посилань на найбільш відомі:
Багато в чому # 151; саме інтернет підтримує ZX Spectrum «на плаву», забезпечуючи можливість оперативного поширення програм і обміну інформацією. Для користувача навіть з невисоким рівнем доходів не буде обтяжливим раз на місяць сходити в інтернет-кафе, щоб познайомитися з новинами і завантажити останні новинки програмного забезпечення (благо, вони в абсолютній більшості freeware, та й розмір їх невеликий).
А чи можна вийти в інтернет за допомогою самого ZX Spectrum? З того, що пишуть в конференціях, ясно наступне: поки для ZX Spectrum немає програм, що підтримують необхідні мережеві протоколи. Однак доступ стає можливим, якщо за допомогою програми # 151; емулятора терміналу підключитися до іншого комп'ютера з встановленою на ньому UNIX-подібної ОС.
Спілкування спектрумістов
Як власнику ZX Spectrum отримати відповідь на свої питання, поділитися новинами, взяти участь в дискусії, поширити свої розробки? У цьому йому можуть допомогти електронні засоби комунікації. В інтернеті # 151; IRC-канал # Z80. У мережі FidoNet # 151; чотири луна-конференції: ZX.SPECTRUM (сама «масштабна»), REAL.SPECCY (присвячена «реальним» комп'ютерів, а не емуляторам), SPB.SPECCY і KHARKOV.SPECTRUM.
Є у спектрумістов і своя мережа # 151; ZXNet. У ній існують конференції, присвячені програмування (CODE.ZX), апаратного забезпечення (ZX.HARDWARE), обговорення софту (ZXNET.SOFT), ігор (SPBZXNET.GAMES), музики (MUSIC.ZX), та інші.
Зазвичай на demoparty проводяться такі конкурси (compo): Demo (графічні ефекти під музику, часто пов'язані спільною ідеєю), Intro (майже те саме, але з обмеженням розміру програми # 151; для ZX Spectrum найчастіше 512 байт, 1 КБ, 4 КБ, 16 КБ), а також конкурси Graphic, Music і інші.
В цьому році вже пройшли demoparty «Forever», «ASCii», «Paradox», «Millennium»; оголошено про те, що відбудеться «Chaos Constructions». І це # 151; беручи до уваги чисто віртуальних party, коли поширення робіт і голосування відбувається за допомогою комп'ютерних мереж.
Огляд буде неповним без згадки про засоби масової інформації, присвячених ZX Spectrum і / або видаються на цій платформі.
У моїй неповної колекції налічується понад 80 електронних газет і журналів для ZX Spectrum. Не всі вони видаються зараз, але в той же час з'являються і нові! Майже в кожному великому місті виходить своя електронна газета, а буває, що й не одна. Благо випуск таких видань # 151; справа не дуже складна; були б матеріали. Та й з поширенням проблем не виникає: звичайно свіжі випуски розсилаються по мережам (Internet, FIDONet, ZXNet) і викладаються на спектрумовскіе сайти.
Відомі мені друковані видання # 151; журнал «Радіоаматор. Ваш комп'ютер », регулярно віддає приблизно чверть обсягу під матеріали про ZX Spectrum, і виходить в Вологді газета« Абзац », повністю присвячена ZX Spectrum.