ZX Spectrum: дъгата на Sinclair
На 23 април 1982 г. Sinclair Research представя в лондонския хотел Churchill компютър за £125 (16 KB) и £175 (48 KB): малка кутия с гумена клавиатура, цветен дисплей и дъгова ивица. За нея са издадени над 24 000 софтуерни продукта, а продажбите са около 5 милиона. Тук виждаш какво е вътре, откъде идва прословутият „attribute clash“, как се пише на Sinclair BASIC и как да го пуснеш днес.
01Какво ще научиш
- Какво е в Spectrum: процесор, памет, видео, звук — с точните числа.
- Какво прави ULA и защо процесорът му „чака“ в част от паметта.
- Как работи цветът по блокове 8 × 8 и откъде идва attribute clash.
- Как се въвежда Sinclair BASIC и как зарежда касетата.
- Кои игри са добре документирани и какво знаем за тях.
- Как Spectrum стига от Sinclair до Amstrad, в съветските клонинги и днес до Next и емулаторите.
02Преди да започнеш
- Не ти трябват предварителни знания — достатъчно е да знаеш какво са процесор, RAM и пиксел.
- По желание: компютър за емулатора Fuse 🔒 локално — свободен емулатор (вж. сайта му).
- Игрите и ROM файловете имат собственици. Ползвай само софтуер, който имаш право да ползваш.
03Стъпки
-
Машината накратко
Spectrum е последникът на ZX81. Хардуерът е дело на Richard Altwasser (той проектира ULA и цветния дисплей и получава патент за схемата на цвета), корпусът и гумената клавиатура — на Rick Dickinson, който предлага и дъговите логотипи. Произвежда се в Dundee, Шотландия, от Timex. Защо е важно: цената на 16K модела е значително под тази на основния конкурент, BBC Micro.
Параметър ZX Spectrum (16K / 48K) Представен 23 април 1982 г., хотел Churchill, Лондон Начална цена £125 (16 KB) · £175 (48 KB) — исторически цени Процесор Zilog Z80 · 3,5 MHz · 8-битов ROM 16 KB — Sinclair BASIC и системни рутини RAM 16 KB или 48 KB Видео 256 × 192 пиксела · 15 цвята (7 цвята на две яркости + черно) · изход към телевизор през RF модулатор Звук 1-битов бипър, един канал (команда BEEP) Съхранение Касетофон · 1500 бода Продадени около 5 милиона; над 24 000 софтуерни продукта 🚚Закъснелите поръчкиSinclair продава по пощата преди да има стока. Планираното производство е 20 000 бройки месечно, а към юли 1982 чакащите поръчки са 30 000 (40 000 след лятната почивка на завода на Timex). Първите девет месеца се продават 200 000 машини; милионният Spectrum е произведен на 9 декември 1983. -
ULA и паметта, която се споделя
ULA (uncommitted logic array) събира на един чип логиката за видео, клавиатура, касета и бипър — затова машината е евтина. При по-късните платки чипът е Ferranti 6C001E; по-ранните ULA (серия 5C) се нагряват повече. ULA и Z80 делят RAM паметта и когато чипът чете картината, процесорът изчаква: областта 0x4000–0x7FFF се нарича „contended“ (със спорен достъп). Програмистите пазят критичния код в останалата памет. Освен картината ULA дава и прекъсването 50 пъти в секунда (PAL), цвета на рамката (бордюра), четенето на клавиатурата и входа/изхода към касетофона (EAR/MIC) — всичко през един порт, FEh.
Z80 асемблер · бордюр и клавиатура през порт FEh; цвят на бордюра: долните 3 бита на порт FEh LD A,2 ; 2 = червено AND 7 ; остави само битовете за цвят OUT (0FEh),A ; изпрати към ULA ; клавиатура: полуред CAPS SHIFT..V LD A,0FEh ; горният байт на адреса избира полуреда IN A,(0FEh) ; прочети AND 00011111b ; битове 0-4 = клавиши; 0 = натиснат (обърната логика)Примерът не е пускан от нас; той следва стандартната карта на порт FEh (ULA).
✅Правило: 3,5 MHz не значи винаги 3,5 MHzСкоростта на Z80 пада при достъп до contended памет. Затова две машини с „еднакъв“ процесор може да пускат една и съща програма с различно време — основна причина емулаторите да моделират ULA точно.⚠️Стар хардуер, стари ULAПри ремонт на оригинални платки ULA често е проблемът. Съществуват съвременни заместители (напр. vLA82 и NebULA) — виж дискусията в „Източници“. Преди да купуваш, прочети за типовете ULA. -
Цветът по блокове: attribute clash
Екранът е мрежа 32 × 24 клетки, а във всяка клетка 8 × 8 точки. Картината е една битова карта, а цветът се пази отделно — един атрибут на блок: цвят на мастилото (INK), цвят на хартията (PAPER), яркост и мигане. Всички 64 точки на блока делят тези два цвята. Патентът за тази идея е на Altwasser.
Част на атрибута Стойност Принос към ATTR FLASH 0 или 1 +128 при мигане BRIGHT 0 или 1 +64 при яркост PAPER 0–7 8 × кода на хартията INK 0–7 кода на мастилото Кодовете на цветовете са 0 черно · 1 синьо · 2 червено · 3 лилаво · 4 зелено · 5 светлосиньо · 6 жълто · 7 бяло. Функцията ATTR връща сумата; ръководството дава пример — мигащ, нормален блок с жълта хартия и синьо мастило дава 128 + 0 + 8 × 6 + 1 = 177. Командата по-долу е точно от ръководството (не е пускана от нас в емулатор) — очакваме 177.
Sinclair BASIC · провери атрибутPRINT AT 0,0; FLASH 1; PAPER 6; INK 1;" "; ATTR (0,0)🎮Как игрите го избягватДокато спрайтът минава през блок с друг цвят, целият блок променя цвета си — оттам „clash“. Knight Lore прави стаите си едноцветни, като цветът се сменя от стая на стая, „за да избегне attribute clash“. Други игри се движат на стъпки по 8 пиксела или приемат ефекта като стил. -
Sinclair BASIC и зареждане от касета
Интерпретаторът на BASIC е във вградените 16 KB ROM и е готов веднага след включване. Клавиатурата е отпечатана с ключови думи: при повечето е достатъчен един клавиш в режим K — например
GO TOе на клавиша G, цялата дума е една ключова дума. Останалите се въвеждат след смяна на режима. Dickinson има задача да побере всичките 192 BASIC функции върху 40 физически клавиша — затова клавишите носят по няколко значения.Sinclair BASIC · звезда, която тича по екрана10 BORDER 0: PAPER 0: INK 7: CLS 20 LET x=1 30 PRINT AT 10,x;"*" 40 PAUSE 5 50 PRINT AT 10,x;" " 60 LET x=x+1 70 IF x>30 THEN LET x=1 80 GO TO 30Програмата е проверена спрямо ръководството, но не е пускана от нас в емулатор; ключовите думи (PRINT, PAUSE, GO TO…) се въвеждат с клавиш, не буква по буква.
Защо работи така: ред 10 задава цветове и изчиства екрана (CLS прилага новата хартия за целия екран); редове 30–50 рисуват и трият звездата, PAUSE 5 изчаква 5 кадъра, ред 70 връща звездата в началото.
Касетата. Зареждаш с
LOAD ""и натискаш PLAY. Скоростта е 1500 бода — екипът е целял 1000, но е постигнал повече. Като груба оценка: 48 KB при около 190 байта в секунда са няколко минути (пресмятане, не измерване). Ако нещо се обърка, екранът показва съобщениетоR Tape loading errorи започваш отначало. -
Звукът: бипър и AY
Оригиналният Spectrum има един бит звук: програмата го включва и изключва, а процесорът е зает само с това, докато трае сигналът. Въпреки това програмисти като Tim Follin правят на това ограничение многогласна музика. Моделите от 128K нагоре добавят тригласния чип AY-3-8912.
-
Игрите
За Spectrum са издадени над 24 000 софтуерни продукта. Ето дванадесет заглавия с проверени факти.
Игра Година · екип Какво е Manic Miner 1983 · Matthew Smith · Bug-Byte Платформинг: 20 пещери, миньорът Willy; в играта звучи „In the Hall of the Mountain King“, а на заглавния екран — „Синият Дунав“. Според страницата на Smith е писана осем седмици. Версията на Software Projects (28.11.1983) се разпространява най-много. Jet Set Willy 09.03.1984 · Software Projects Продължението, 60 екрана. При излизане е непобедима заради бъгове („The Attic Bug“); защитата е картичка със 180 цветни кода. Knight Lore ноември 1984 · Ultimate Play the Game Писана от Chris и Tim Stamper с „Filmation“ енджина. Не е първата изометрична игра, но я популяризира; стаите са едноцветни заради attribute clash. Head Over Heels 1987 · Ocean · Jon Ritman, Bernie Drummond Над 300 стаи; Head скача по-високо, Heels тича два пъти по-бързо — комбинираш ги. Sabre Wulf 1984 · Ultimate Приключение в джунгла; продажбите имат противоречиви цифри, затова не ги цитираме. Chuckie Egg 1983 · A’n’F · Nigel Alderton Събиране на яйца, избягване на птици. The Hobbit 1982 · Melbourne House (разработена от Beam Software) Текстово приключение с графика; парсерът „Inglish“ и независими герои (Gandalf се движи сам). Dizzy 1987–1992 · The Oliver Twins · Codemasters Поредица с яйце-герой — над дузина игри (със завръщания — около 22). Target: Renegade 1988 · Ocean (етикет Imagine) Продължение на Renegade, бийт-ем-ъп; не е порт на Double Dragon. Daley Thompson’s Decathlon 1984 · Ocean Спортна игра с бързо натискане на клавиши или джойстик. Elite Firebird (версията за Spectrum) Braben и Bell; 8 галактики × 256 планети = 2 048 системи. Оригиналът е за BBC Micro (1984). Skool Daze / Back to Skool 1984 / 1985 · Microsphere Симулация на училище — Skool Daze е от 1984, Back to Skool от 1985. -
Моделите и историята
Модел Година · цена Бележка 16K / 48K 1982 · £125 / £175 Оригиналът; гумена клавиатура. Spectrum+ 15.10.1984 · £179 Нов корпус с по-голяма клавиатура. Spectrum 128 септември 1985 в Испания (44 250 песети) · януари 1986 във Великобритания £179 „Toast Rack“ (радиаторът на страната); 128 KB, AY-3-8912, MIDI, RS-232. Правен с испанския дистрибутор Investrónica. Spectrum +2 1986 · £149 Първият от Amstrad; вграден касетофон „Datacorder“. Spectrum +3 1987 · £249, по-късно £199 Вграден 3-инчов флопи диск; единственият модел, който пуска CP/M без добавки. ZX Spectrum Next 2017 (кампания) · 2020 (с корпус) FPGA реплика, съвместима със Spectrum; не е свързана със Sinclair Research. Дата Събитие 23.04.1982 Представяне на Spectrum — £125 и £175. 09.12.1983 Произведен е милионният Spectrum. 15.10.1984 Излиза Spectrum+ за £179. септември 1985 Spectrum 128 в Испания с AY звуков чип. 07.04.1986 Amstrad (Alan Sugar) купува целия компютърен продуктов ред на Sinclair и името „Sinclair“ за £5 млн. 1987 · 1990 Излиза +3; производството му спира през декември 1990. 1992 Край на производството на всички модели на Amstrad. Общо Spectrum е продаден в около 5 млн. бройки. 2017–днес ZX Spectrum Next: първа кампания в Kickstarter (2017 — £723 390 от 3 113 поддръжници), втора през 2020, трета през юли 2025 (£2 612 335). Дизайнерът Rick Dickinson умира на 24 април 2018 г.; корпусът на Next е негов. -
Клонинги в съветския блок
След 1988 г. по бившия СССР се появяват десетки клонинги на Spectrum — има над 50 модела, продавани по афиши и улични сергии. Документацията на Pentagon е свободно разпространявана, а платката му се копира из цялата територия. Примери:
Клонинг Година Какво е Leningrad 1 1988 Най-евтиният масов 48K клонинг (проект на Sergey Zonov); Leningrad 2 — 1991. Moskva 1988 (48K), 1989 (128K) Първият масов 48K клонинг в СССР. Pentagon 1989 (48K, Vladimir Drozdov) Клонинг на Spectrum 128; RAM от 48 до 4 096 KB според модела. Byte 1989 · до 1995 (Брест) Масово производство. Scorpion ZS-256 1991–1996 Sergey Zonov, Санкт Петербург; 256–1 024 KB. ATM Turbo 1991 (Москва) 7 MHz, до 1 024 KB. Hobbit 1990 (Ленинград) Dmitry Mikhailov; освен Sinclair BASIC има CP/M, Forth или LOGO; много бройки отиват в руски училища. ⚠️България — не можахме да потвърдимНе намерихме източник за български клонинги на Spectrum, нито за продажби или популярност у нас. Затова в този урок няма твърдения за България. Свързан факт, който е потвърден: Правец 8D е клонинг на Oric Atmos, а не на Spectrum. -
Опитай сам: Spectrum в емулатор
Най-лесният път е Fuse 🔒 локално — безплатен Spectrum емулатор (сайтът му към 01.10.2026 сочи версия 1.10.0). Има и комерсиален Spectaculator с пробен период. Стъпките описваме по принцип; менютата не сме проверявали на живо.
- Свали Fuse от официалния му сайт (виж „Източници“).
- Избери модел 48K и стартирай. Ще видиш заглавния екран и курсора К.
- Въведи програмата със звездата (ключовите думи — с клавиш) и я пусни с
RUN. - Опитай примера с ATTR и провери дали получаваш 177.
⚠️Непроверено на живоНе сме пускали емулатор за този урок — затова няма етикет ТЕСТВАНО. Кодът е проверен спрямо ръководството на Sinclair, не е изпълняван.⛔Авторски праваИгрите имат собственици. Не качвай и не разпространявай чужди образи.
04Проверка
Чеклист
- Знам кога е представен Spectrum (23.04.1982), с какъв процесор и колко памет.
- Мога да обясня защо блок 8 × 8 води до attribute clash.
- Мога да пресметна стойност на ATTR от FLASH, BRIGHT, PAPER и INK.
- Знам защо Z80 „чака“ в част от RAM паметта.
- Знам реда: Sinclair → Amstrad (1986) → край на производството (1992) → клонингите и Next.
Тест
1. Колко точки има блокът, който споделя един атрибут на цвят?
2. Кога Amstrad купува компютърния бизнес на Sinclair?
3. Какъв звук има оригиналният Spectrum?
4. Каква стойност връща ATTR за мигащ, нормален блок с жълта хартия (6) и синьо мастило (1)?
05Какво следва
06Източници
- ZX Spectrum (Wikipedia) — дати, цени, хардуер, модели, продажби, Amstrad.
- ZX Spectrum Next (Wikipedia) 🔒 локално — характеристики и трите кампании.
- Rick Dickinson (Wikipedia) — дизайнерът; 24.04.2018.
- Contended memory (Wikipedia) — 0x4000–0x7FFF и Z80.
- Ръководство на ZX Spectrum — глава 16, цветове — атрибути, ATTR; глави 1, 2 и прил. B — ключови думи, „R Tape loading error“.
- Spectrum for Everyone — типове ULA — Ferranti 6C001E; форум — vLA82, NebULA.
- Клонинги: списък · Pentagon · Scorpion ZS-256 · ATM · Hobbit ·Правец.
- Игри (Wikipedia): Manic Miner · Matthew Smith · Jet Set Willy · Knight Lore · Head Over Heels · Sabre Wulf · Chuckie Egg · The Hobbit · Dizzy · Target: Renegade · Daley Thompson’s Decathlon · Elite · Skool Daze · Back to Skool.
- Fuse 🔒 локално — свободен емулатор; Spectaculator — комерсиален.
- ZX Spectrum Next — официален сайт на проекта.
- Spectrum Computing 🌐 глобален и World of Spectrum — архиви и документация; Internet Archive — колекция Spectrum софтуер.