Commodore 64: чипът SID, игрите и демосцената
През януари 1982 г. Commodore показва на изложението CES в Лас Вегас машина с 64 KB RAM, звуков чип, който е истински синтезатор, и графичен чип със спрайтове. Тук виждаш какво е вътре, какво от старите „легенди“ е вярно и какво не, и как пишеш първите си звуци и спрайтове на BASIC — после ги пускаш в емулатор.
ELSE не съществува в BASIC V2 (поправено), спрайтът нямаше данни, а звукът в края нямаше ADSR; честотата 28/160 е около нота A4, не A3; в растер кода липсваха SEI, разрешаването на прекъсването и изходът (JMP ($0314) би зациклил) — преписан по документацията. Махнато: бележка за вътрешна инфраструктура, броят игри в Lemon64, „99% съвместимост“ и „два ZIF сокета“ за C64 Ultimate, „Doom, Elite Dangerous“ като наследници. Добавено: VICE 3.10 (24.12.2025), HVSC с над 60 000 SID файла (актуализация №84, януари 2026), C64 Ultimate (цена и дата), раздел „Опитай сам“, тест. Цените от 1982–1985 г. са в исторически валути ($), без превръщане.
01Какво ще научиш
- Какво е в C64: процесор, памет, чипове — с точните числа.
- Защо SID е „синтезатор в чип“ и как се управлява с
POKE. - Как работят спрайтовете на VIC-II и защо BASIC V2 не ги „знае“.
- Кои игри и композитори направиха машината известна — и кои легенди не издържат проверка.
- Какво е демосцена и какво е rasterно прекъсване.
- Как пускаш C64 днес: емулатор (VICE) или новия C64 Ultimate.
02Преди да започнеш
- Не ти трябват предварителни знания — достатъчно е да знаеш какво са процесор, RAM и регистър.
- По желание: компютър за емулатора VICE 🔒 локално.
- ROM файловете и игрите имат собственици. Ползвай само такива, които имаш право да ползваш; вж. документацията на VICE.
03Стъпки
-
Машината накратко
C64 е 8-битов домашен компютър на Commodore International. Името идва от 64-те килобайта RAM. Екипът, който го строи, е Yash Terakura, Shiraz Shivji, Bob Russell, Bob Yannes и David Ziembicki; работното име е VIC-40. Защо е важно: Commodore прави повечето чипове в собствена фабрика (MOS Technology) и продава в обикновени магазини — затова цената пада бързо и машината стига до милиони домове.
Параметър C64 Показан 7–10 януари 1982 г., CES, Лас Вегас; в продажба от август 1982 г. Цена $595 при старта · предложена цена $425 от януари 1983 · $149 през 1985 г. Процесор MOS 6510 (наследник на 6502) · 1,023 MHz (NTSC) / 0,985 MHz (PAL) Памет 64 KB RAM · 20 KB ROM · 38 911 свободни BASIC байта при стартиране Графика VIC-II (6567 NTSC / 6569 PAL) · 320×200 · 16 цвята · 8 спрайта 24×21 пиксела Звук SID 6581 (по-късно 8580) · 3 гласа Съхранение дискови устройства 1541 (около 170 KB на диск) или касетофон Datasette Производство до април 1994 г. (около 11,5 години) ⚠️Колко са продадени? Не „30 милиона“Guinness го води като най-продавания настолен компютърен модел. Но по фирмените записи на Commodore са около 12,5 млн., независимите оценки са 12,5–17 млн., а числата 17, 22 и 30 млн. са твърдения без потвърждение. В този урок ползваме 12,5–17 млн.💡„38911 BASIC BYTES FREE“Това е екранът при стартиране: синьо поле,**** COMMODORE 64 BASIC V2 ****,64K RAM SYSTEM 38911 BASIC BYTES FREEи подканаREADY.Числото е по-малко от 64 KB, защото ROM се „наслагва“ върху част от адресното пространство. BASIC е готов за секунди, без дискета. -
SID: синтезатор в един чип
SID (Sound Interface Device) е проектиран от Bob Yannes с екип от двама техници и един оператор на CAD; чипът е завършен за пет месеца през втората половина на 1981 г. Yannes по-късно съосновава Ensoniq. Искал е истински музикален инструмент, не „бипкане“ — затова има обвивка (ADSR) за всеки глас. Спецификациите не са били чертеж: писани са по време на разработката, и не всичко планирано влиза в чипа.
Възможност Какво значи 3 гласа Три еднакви осцилатора. Всеки има собствена форма на вълната и собствена ADSR обвивка. 4 форми триъгълна · трион · импулс (с променлива ширина) · шум; триъгълна, трион и импулс могат да се комбинират ADSR Attack, Decay, Sustain, Release — как звукът започва, спада, се задържа и затихва Филтър нисък, лентов и висок пропуск (режимите се комбинират — например режекторен); 12 dB/окт. за нисък и висок, 6 dB/окт. за лентов Пръстеновидна модулация и синхронизация Гласовете могат да се модулират един друг — метални, камбанени тембри Трите гласа са равни. „Глас 1 е мелодията, глас 2 е басът“ е навик на композиторите, не правило на чипа. По време на разработката SID е замислен с 32 гласа, но не е довършен навреме — затова три копия на един осцилатор.
🎛️6581 срещу 8580Първата версия 6581 излиза с C64 през 1982 г.; ревизията 8580 я заменя около 1986 г. и се произвежда до около 1992 г. Звучат различно — особено филтърът — затова колекционерите търсят конкретен чип, а емулаторите имат и двата модела.BASIC V2 · първият ти звук; SID започва от $D400 = 54272. Всеки глас има 7 регистъра; обемът е 54296. ; Първо обвивката (ADSR), после формата и „gate“ (старт на звука). 10 POKE 54296,15 : REM обем = 15 (максимум) 20 POKE 54273,28 : REM честота, висок байт 30 POKE 54272,160 : REM честота, нисък байт (28*256+160 = 7328) 40 POKE 54277,9 : REM Attack 0, Decay 9 50 POKE 54278,160 : REM Sustain 10, Release 0 60 POKE 54276,17 : REM триъгълна форма (16) + gate (1) = звукът започва 70 FOR I=1 TO 500:NEXT I : REM кратко изчакване 80 POKE 54276,16 : REM gate изключен = затихванеЗащо точно тези числа: честотата е
Fn × тактова честота / 16 777 216; при 7328 това е около 430 Hz (PAL) или 447 Hz (NTSC) — близо до нота A4 (440 Hz). Битовете на регистъра за управление ($D404, адрес 54276): 0 = gate, 1 = sync, 2 = ring, 4 = триъгълна, 5 = трион, 6 = импулс, 7 = шум.⚠️Не е пускано на живоАдресите и битовете са сверени с документация (C64-Wiki). На 01.10.2026 програмата (само номерираните редове) е изпълнена без грешка в cbmbasic — интерпретатор, изграден от оригиналния C64 BASIC V2, но без звуков и графичен чип; така е проверен синтаксисът, не звукът. В емулатор не е пускана — затова няма етикет ТЕСТВАНО. Опитай я във VICE (стъпка 7). -
VIC-II, спрайтове и BASIC V2
VIC-II рисува картината и управлява осем хардуерни спрайта — малки движещи се изображения, 24×21 пиксела, които чипът поставя сам, без процесорът да пренарисува екрана. Идеята за спрайтове идва от TI-99/4A. Защо е важно: спрайтът се движи с промяна на две числа, а не с рисуване пиксел по пиксел.
C64 идва с Commodore BASIC 2.0 (версия на Microsoft BASIC, същата като във VIC-20). Той няма команди за звук и графика — всичко се прави с
POKEиPEEK. Commodore продава разширения на BASIC в касети (Simons' BASIC, Super Expander 64). Много потребители пишат директно на асемблер.BASIC V2 · движещ се спрайт и звук; Спрайт 0 използва блок 13 (13*64 = 832). Запълваме го със 63 байта 255 = плътен правоъгълник. 10 FOR I=0 TO 62:POKE 832+I,255:NEXT I 20 POKE 2040,13 : REM указател на спрайт 0 → блок 13 30 POKE 53269,1 : REM включи спрайт 0 (бит 0) 40 POKE 53287,7 : REM цвят на спрайт 0 = жълто 50 POKE 53249,100 : REM Y позиция 60 FOR X=24 TO 320 70 POKE 53248,X AND 255 : REM X позиция, нисък байт 80 POKE 53264,-(X>255) : REM девети бит на X (BASIC V2 няма ELSE) 90 NEXT X 100 POKE 54296,15:POKE 54277,9:POKE 54278,160 110 POKE 54273,17:POKE 54276,33 : REM трион (32) + gate (1) 120 FOR D=1 TO 300:NEXT D 130 POKE 54276,32 : REM gate изключен✅Правило: BASIC V2 няма ELSEВ Commodore BASIC 2.0IF … THEN … ELSEне работи. Вместо това ползваме израз: във V2 „вярно“ е −1, затова-(X>255)дава 1 или 0.⚠️Не е пускано на живоАдресите (2040, 53248–53249, 53264, 53269, 53287) са сверени с документация. На 01.10.2026 номерираните редове са изпълнени без грешка в cbmbasic (C64 BASIC V2 без графичен чип): изразът-(X>255)дава 0 при X = 255 и 1 при X = 256. Спрайтът на екрана не е видян — в емулатор програмата не е пускана. -
Игрите и композиторите
C64 има хиляди игри (приблизително 10 000 е често цитирана цифра). Ето единайсет с проверени факти — и поправки на стари „легенди“.
Игра Година · екип Какво е и какво поправяме Impossible Mission 1984 · Epyx (Dennis Caswell) Написана за C64; ранна дигитализирана реч: „Another visitor. Stay a while… stay forever!“ Boulder Dash 1984 · First Star (Peter Liepa, Chris Gray) Пазлова игра с диаманти и скали. Излиза първо за Atari 8-bit, после за C64 и много други. Elite 1984 BBC Micro · Acornsoft (Braben и Bell) Търговия в космоса; 8 галактики по 256 планети, създавани процедурно от число-семе. Не е C64 ексклузив — пренесена е на почти всеки тогавашен компютър. Little Computer People 1985 · Activision (David Crane, Rich Gold) „Къща на дискета“: социална симулация с малък обитател; C64 е сред първите платформи. The Last Ninja 1987 · System 3 Изометричен екшън; оригиналът е за C64, портове от 1987 до 1991 г.; музика Ben Daglish и Anthony Lees; над 2 млн. копия на всички формати (System 3 твърди около 4 млн.). International Karate + 1987 · System 3 (Archer Maclean) Трима бойци на екрана едновременно; музика Rob Hubbard. Maniac Mansion 1987 · Lucasfilm Games (Ron Gilbert, Gary Winnick) Създадена първо за C64; води до точка-и-кликни управление и двигателя SCUMM; играеш с Дейв и двама от шестима приятели. Wizball 1987 · Sensible Software (Jon Hare, Chris Yates), издател Ocean Шутър, в който връщаш цветовете на обезцветен свят; музика Martin Galway. Katakis 1987 · Rainbow Arts Хоризонтален шутър, силно напомнящ R-Type. Правоносителят Activision Europe поставя ултиматум (Factor 5 получава поръчка за официалния R-Type за Amiga); преиздаден като Denaris през 1989 г. SimCity разработка от 1985 · издадена 1989 · Will Wright Първата версия е писана за C64 (работно име Micropolis), но излиза едва през 1989 г. — първо за Amiga и Macintosh, после за C64. Turrican II 1991 · Factor 5, издател Rainbow Arts Версията за Amiga е завършена първа, но дизайнерът Manfred Trenz смята C64 версията за оригинал; музика Chris Hülsbeck. Музиката става отделно изкуство. Композиторите програмират собствени плейъри за SID:
Композитор Проверено Rob Hubbard Над 75 игри между 1985 и 1989; Commando, Monty on the Run, Delta, International Karate; през 1988 г. се присъединява към Electronic Arts. Martin Galway Wizball, Rambo: First Blood Part II, Comic Bakery; Kong Strikes Back (1985) е описана като първата C64 песен с арпеджио. Chris Hülsbeck Печели конкурс на списание 64'er през 1986 с „Shades“, работи в Rainbow Arts; The Great Giana Sisters и серията Turrican; публикува SoundMonitor (1986). Ben Daglish (1966–2018) The Last Ninja, Trap, Krakout, Deflektor. Jeroen Tel Съосновател (с Charles Deenen) на Maniacs of Noise от 1987; Myth (1989), Turbo Outrun (1990). -
Демосцена и rasterно прекъсване
Демосцената започва в ранните 80-те от крекването на игри: крекерите махат защитата и добавят собствен екран (cracktro). Скоро се състезават кой прави по-добро представяне — така се раждат интрота и самостоятелни демота. Около 1985 г. Charles Deenen прави на C64 музикални колекции с цветна графика; през 1986 г., според Wikipedia, се ражда движението. Холандските групи 1001 Crew и The Judges често се споменават сред първите. C64 често се сочи като мястото, където сцената тръгва.
Известни C64 групи: Crest (Германия, 1988), Oxyron (Германия, 1991), Fairlight, Triad, Booze Design. Днес големи събития са Revision (Саарбрюкен, около Великден, от 2011 г.) и Assembly.
Rasterно прекъсване: VIC-II рисува екрана ред по ред. Можеш да поискаш процесорът да бъде прекъснат на точен ред и там да смениш регистър — цвят, позиция на спрайт. Така се правят „raster bars“; с подобни трикове се рисуват и повече от осем спрайта („мултиплексиране“).
6510 асемблер · рамка на rasterно прекъсване; Рамка по документацията на C64-Wiki: прекъсване на ред 100, промяна на цвета на рамката. SEI ; спри IRQ, докато настройваме LDA #$7F STA $DC0D ; изключи прекъсванията от таймера на CIA-1 LDA $DC0D ; потвърди чакащите LDA #100 STA $D012 ; ред 100 (нисък байт) LDA $D011 AND #%01111111 ; ред < 256: изчисти старшия бит STA $D011 LDA #<rasterisr STA $0314 ; вектор на IRQ (KERNAL) LDA #>rasterisr STA $0315 LDA #$01 STA $D01A ; разреши rasterно прекъсване — последно! CLI RTS rasterisr: INC $D020 ; смени цвета на рамката ASL $D019 ; потвърди прекъсването на VIC-II JMP $EA31 ; продължи стандартния KERNAL IRQ (клавиатура, курсор)⚠️Не е асемблирано и пусканоРедът на стъпките (SEI, CIA, $D012, вектор, $D01A, CLI; край с ASL $D019 и JMP $EA31) е по документацията на C64-Wiki; кодът не е асемблиран и стартиран за този урок. Старата версия на урока го пропускаше (без SEI и без $D01A;JMP ($0314)би зациклил). -
Наследство: какво е живо днес
Област Какво знаем SID музика HVSC — безплатен хоби проект, който подрежда C64 музиката; актуализация №84 (януари 2026) надхвърля 60 000 SID файла. Хардуер със SID SidStation на Elektron (1997), построена около чипа 6581. Bob Yannes съосновава Ensoniq. Демосцена CSDb е база данни на C64 сцената; Pouët — общ архив на демосцената. Емулация VICE 3.10 е от 24.12.2025 г.; емулира C64 и други Commodore машини. Нов хардуер Commodore 64 Ultimate — FPGA реализация с HDMI 1080p, Wi-Fi и USB, съвместима с оригинални касети и периферия; първоначалната предпродажбена цена е от $299,99 (Basic Beige) и $349,99 (Starlight). Към 01.10.2026 сайтът на производителя показва „от $399“ — цените се сменят, провери. -
Опитай сам: C64 във VICE
VICE 🔒 локално е безплатен емулатор. Текущата версия е 3.10 (24.12.2025); има готови пакети за Windows и macOS, а за останалите системи — изходен код. Стъпките са по принцип — менютата не сме проверявали на живо.
- Свали VICE от официалния му сайт (вж. „Източници“).
- Стартирай емулатора на C64. Трябва да видиш синия екран с
READY.. - Въведи програмата със звука ред по ред, после напиши
RUN. Въвеждай само редовете с номера — обясненията след;и: REMса за теб (C64 няма кирилица). Следи за грешки при преписване (?SYNTAX ERROR). - Пробвай спрайта. После сменяй числата и слушай разликата.
⚠️Непроверено на живоНе сме пускали VICE за този урок — затова няма етикет ТЕСТВАНО. Следвай документацията на VICE.⛔Авторски праваИгрите и ROM файловете имат собственици. Не качвай и не разпространявай чужди образи.
04Проверка
Чеклист
- Знам колко RAM има C64 и какво показва екранът при стартиране (38 911 байта).
- Мога да кажа какво прави SID и колко гласа има; знам разликата между 6581 и 8580.
- Знам защо BASIC V2 ползва POKE и че няма ELSE.
- Знам, че „30 милиона“ не е потвърдено (12,5–17 млн.).
- Мога да обясня с едно изречение какво е rasterно прекъсване.
Тест
1. Колко RAM има C64 и колко свободни BASIC байта показва при старт?
2. Кой чип прави звука на C64?
3. Защо в BASIC V2 звукът и спрайтовете се управляват с POKE?
4. Колко C64 са произведени според фирмените записи на Commodore?
05Какво следва
06Източници
- Commodore 64 (Wikipedia) — дати, цени, спецификация, продажби, BASIC 2.0, демосцена, C64 Ultimate.
- MOS Technology 6581 SID (Wikipedia) — Bob Yannes, възможности, 6581 и 8580, SidStation.
- MOS Technology VIC-II (Wikipedia) — спрайтове, 6567/6569.
- Игри (Wikipedia): The Last Ninja · Impossible Mission · Maniac Mansion · Elite · Boulder Dash · Wizball · International Karate + · Katakis · Turrican II · SimCity · Little Computer People.
- Композитори (Wikipedia): Rob Hubbard · Martin Galway · Chris Huelsbeck · Ben Daglish · Jeroen Tel.
- Demoscene (Wikipedia) · Revision (Wikipedia) — произход, cracktro, първи групи.
- C64-Wiki: Raster interrupt · Sprite · SID — адреси на регистри и последователност на настройката.
- VICE 🔒 локално — официален сайт, версия 3.10 (24.12.2025).
- HVSC 🔒 локално · актуализация №84 (nIGHTFALL) — над 60 000 SID.
- CSDb 🌐 глобален · Pouët.net 🌐 глобален · Internet Archive: C64 Software Library 🌐 глобален.
- Tom's Hardware: C64 Ultimate · commodore.net — цени и спецификация.