SID
Die Abkürzung SID steht für Sound Interface Device und ist die Bezeichnung für einen Chip, der beim VC 10, C64, C128 und bei der CBM-II-Serie für die Erzeugung von Tönen und Geräuschen zuständig ist. Der SID wurde von Bob Yannes, einem Mitarbeiter des Halbleiterherstellers MOS Technology entwickelt und ging 1982 in Produktion. Bob Yannes besaß neben seinem technischen Verständnis vor allem auch tiefgehendes Wissen über Musik. Dieser Einfluss führte dazu, dass der SID als bester Soundchip der 8-Bit-Ära gilt. Durch die zahlreichen Einstellmöglichkeiten und wegen der Kombination aus analogen und digitalen Schaltkreisen hebt sich der SID von einfachen Tongeneratoren ab und erreicht die Klangfülle eines einfachen Synthesizers. Im Bereich Computermusik gehören die Kompositionen für den SID zu den Klassikern. Die größte Sammlung dieser Musik ist die High Voltage SID Collection.
Beschreibung[Bearbeiten | Quelltext bearbeiten]
In der Urfassung des C64, den C128 mit Tastaturgehäuse, den C128D und in den CBM-II-Modellen wurde der SID 6581 verbaut, in C64 mit 250469-Platine, den C128DCR-Modellen und auch in den C65-Prototypen wurde eine überarbeitete Version des SID mit der Bezeichnung 8580 eingebaut. Dieser Sound-IC war die 5. und letzte Revision des SID. Der 8580-Chip wurde in seltenen Fällen auch mit der Aufschrift MOS 6582 oder MOS 6582A bedruckt. Diese mit dem 8580 identische Version wurde aber nie in neue Rechner verbaut, sondern nur als Ersatzteil verwendet. Der SID kann per BASIC oder Maschinensprache wie Assembler einfach programmiert werden.
Eigenschaften des SID:
- 3 Tongeneratoren (Stimmen), Frequenzbereich von 0-4 kHz (16-Bit-Auflösung)
- 4 Wellenformen (Sägezahn, Dreieck, Rechteck mit einstellbarer Pulsbreite, "weißes" Rauschen)
- 3 Amplitudenmodulatoren, Bereich bis 48 dB
- 3 Hüllkurvengeneratoren
- Synchronisierung der Oszillatoren
- Ringmodulation
- Programmierbare Filter (Tief-, Band-, Hochpass, Notchfilter)
- Gesamtlautstärkeeinstellung in 16 Stufen
- 2 A/D-Wandler (8 Bit, niederfrequent)
- Zufallsgenerator
- Audioeingang (filterbar)
Inzwischen gibt es auch Nachbauten, die den SID emulieren, siehe Alternativen.
Varianten[Bearbeiten | Quelltext bearbeiten]
Chip | Produktionszeitraum | Kommentar |
---|---|---|
6581 | 21/1982 bis 11/1985 | NMOS, Pin 28/Vdd = 12 V DC, je 470 pF an Pins 1+2/3+4 |
6581R3 | 42/1985 bis 07/1986 | |
6581R4 | 16/1986 bis 30/1986 | |
6581R4AR | 22/1986 bis 06/1987 | Im Vergleich zum R4 wurde die Siliziumqualität des IC geändert |
8580R5 | 06/1987 bis 19/1992 | HMOS-II, Pin 28/Vdd = 9 V DC, je 22 nF an Pins 1+2/3+4, Digisound ohne Digifix recht leise |
Anmerkungen:
- Der ermittelte Produktionszeitraum basiert auf einer begrenzten Anzahl von SID-Chips. Ein größerer Zeitraum ist daher sehr wahrscheinlich!
- Die Zugehörigkeit zur Klasse der 6581- oder 8580-Varianten lässt sich auch mit entsprechendem Programmcode[1] ermitteln.
- Der 6581R4AR ist für seinen besonders markanten Klang bekannt. Wofür "AR" laut der Firma MOS Technology steht, ist nicht gesichert.[2] Weit verbreitet ist die Annahme, es bedeute "Advanced Resonance". Eher selten wird auch "Amplified Resonance" genannt.
- Des weiteren ist es eine ungeklärte Frage, warum einige der 6582-SIDs den Aufdruck 6582A erhalten haben. Diese IC wurden fast ausschließlich auf den Philippinen gefertigt, statt in Hongkong, wo die "normalen" 6582 überwiegend hergestellt wurden. Technisch sind die mit 6582A bedruckten SID absolut identisch mit dem 8580R5 oder dem 6582.
Speicheradressen des SID[Bearbeiten | Quelltext bearbeiten]
Register | Hex-Adresse | Dez.-Adresse | Funktion |
---|---|---|---|
0 | $D400 | 54272 | Frequenz Stimme 1 (Low-Byte) |
1 | $D401 | 54273 | Frequenz Stimme 1 (High-Byte) |
2 | $D402 | 54274 | Tastverhältnis Stimme 1 für Rechteck (Low-Byte) |
3 | $D403 | 54275 | Tastverhältnis Stimme 1 für Rechteck (High-Byte 0...15) |
4 | $D404 | 54276 | Wellenform Stimme 1 (Rauschen 129; Rechteck 65; Sägezahn 33; Dreieck 17) Bit 0 (Gate): 1 = Starten des Hüllkurvengenerators, 0 = Release Bit 1 (Sync) Bit 2 (Ring) Bit 3 (Test) Bit 4-7: Dreieck/Sägezahn/Rechteck/Rauschen |
5 | $D405 | 54277 | Anschlag (0*16 hart ... 15*16 weich) / Abschwellen Stimme 1 (+ 0 hart ... 15 weich) |
6 | $D406 | 54278 | Halten (0*16 stumm ... 15*16 laut) / Ausklingen Stimme 1 (+ 0 schnell ... 15 langsam) |
7 | $D407 | 54279 | Frequenz Stimme 2 (Low-Byte) |
8 | $D408 | 54280 | Frequenz Stimme 2 (High-Byte) |
9 | $D409 | 54281 | Tastverhältnis Stimme 2 für Rechteck (Low-Byte) |
10 | $D40A | 54282 | Tastverhältnis Stimme 2 für Rechteck (High-Byte; 0...15) |
11 | $D40B | 54283 | Wellenform Stimme 2 (Rauschen 129; Rechteck 65; Sägezahn 33; Dreieck 17) |
12 | $D40C | 54284 | Anschlag (0*16 hart ... 15*16 weich)/ Abschwellen Stimme 2 (+ 0 hart ... 15 weich) |
13 | $D40D | 54285 | Halten (0*16 stumm ... 15*16 laut)/ Ausklingen Stimme 2 (+ 0 schnell ... 15 langsam) |
14 | $D40E | 54286 | Frequenz Stimme 3 (Low-Byte) |
15 | $D40F | 54287 | Frequenz Stimme 3 (High-Byte) |
16 | $D410 | 54288 | Tastverhältnis Stimme 3 für Rechteck (Low-Byte) |
17 | $D411 | 54289 | Tastverhältnis Stimme 3 für Rechteck (High-Byte 0...15) |
18 | $D412 | 54290 | Wellenform Stimme 3 (Rauschen 129; Rechteck 65; Sägezahn 33; Dreieck 17) |
19 | $D413 | 54291 | Anschlag (0*16 hart ... 15*16 weich) / Abschwellen Stimme 3 (+ 0 hart ... 15 weich) |
20 | $D414 | 54292 | Halten (0*16 stumm ... 15*16 laut) / Ausklingen Stimme 3 (+ 0 schnell ... 15 langsam) |
21 | $D415 | 54293 | Grenzfrequenzfilter (Low-Byte 0...7) |
22 | $D416 | 54294 | Grenzfrequenzfilter (High-Byte) |
23 | $D417 | 54295 | Resonanz; 0 keine; 15*16 stark; (+ Filter für 1.Stimme 1; 2.Stimme 2; 3.Stimme 4; extern 8) |
24 | $D418 | 54296 | Lautstärke für alle Stimmen; 0 stumm; 15 ganz laut; (+ Filtermodus 3.Stimme Aus 128; Hochpass 64; Bandpass 32; Tiefpass 16) |
25 | $D419 | 54297 | Paddle X-Wert |
26 | $D41A | 54298 | Paddle Y-Wert |
27 | $D41B | 54299 | Oszillator Stimme 3 |
28 | $D41C | 54300 | Hüllkurve Stimme 3 |
29 | $D41D | 54301 | unbenutzt |
30 | $D41E | 54302 | unbenutzt |
31 | $D41F | 54303 | unbenutzt |
Anmerkungen:
- Da nur die Adressleitungen A0-A4 am SID anliegen, wiederholen sich die SID-Register alle 32 Byte (hexadezimal $20) im verbleibenden Adressbereich $D420-$D7FF.
- Mit Hilfe der Adressleitungen A5-A9 kann dieser verbleibende Bereich für Erweiterungen genutzt werden. Beliebte Adressen für einen zweiten SID sind z.B. $D420 oder $D500.
Pinbelegung[Bearbeiten | Quelltext bearbeiten]
POT X/Y
Die POT-Eingänge sind mit Kondensatoren gegen Masse verschaltet. Der SID misst den Widerstand eines gegen 5 V angeschlossenen Potentiometers (z.B. in einem Paddle), indem der POT-Pin periodisch kurzzeitig auf Masse gezogen und damit der Kondensator entladen wird, und danach die Zeit gemessen wird, bis die Spannung am Kondensator einen Schwellwert überschreitet[3].
Z.B. die Mouse 1351 legt keinen Widerstand an, sondern funktioniert zeitbasiert digital und synchronisiert sich mit dem Auslesezyklus des SID.
Programmierung[Bearbeiten | Quelltext bearbeiten]
Ein kleines BASIC-Programm demonstriert einige Soundeffekte am C64. Es wird hierzu ausschließlich die 1. Stimme des SID genutzt. Das Programm kann nur mit der RUN/STOP abgebrochen werden.
0 REM *** C64-WIKI SOUND-DEMO *** 10 S = 54272: W = 17: ON INT(RND(TI)*4)+1 GOTO 12,13,14,15 12 W = 33: GOTO 15 13 W = 65: GOTO 15 14 W = 129 15 POKE S+24,15: POKE S+5,97: POKE S+6,200: POKE S+4,W 16 FOR X = 0 TO 255 STEP (RND(TI)*15)+1 17 POKE S,X :POKE S+1,255-X 18 FOR Y = 0 TO 33: NEXT Y,X 19 FOR X = 0 TO 200: NEXT: POKE S+24,0 20 FOR X = 0 TO 100: NEXT: GOTO 10 21 REM *** ABBRUCH NUR MIT RUN/STOP ! ***
Bevor die Wellenform (hier: Register 4) ausgewählt wird, sollte die Hüllkurve (ADSR; hier: Register 5 und 6) gesetzt werden. Wegen den vielen Einstellmöglichkeiten des SIDs sollte sinnvollerweise das SID-Grundregister als Variable, z.B. mit S = 54272
, hinterlegt werden. Die Lautstärke (Register 24) kann nur für alle Stimmen eingestellt werden.
Alternativen[Bearbeiten | Quelltext bearbeiten]
Inzwischen gibt es einige Alternativen zum echten SID:
- SIDKick (2021) und SIDKick pico (2023), zahlreiche Zusatzfunktionen, beide Open Source
- Sidekick64 (2019), via Expansionsport, Open Source
- FPGASID (2018)
- ARMSID (2018)
- SwinSID (2005/2012)
Kurioses[Bearbeiten | Quelltext bearbeiten]
SID aus KW30/1983 mit Produktionsfehler: Offenbar wurden die blanken SID-Rohlinge aus Versehen um 180 Grad verdreht beschriftet und gekerbt. Um die dennoch voll funktionsfähigen SID-Chips trotzdem verwenden zu können, wurde einfach eine "neue" seitliche Orientierungskerbe sowie ein Hinweis, wo bei diesem Chip "Pin 1" zu finden ist, nachträglich aufgedruckt.
Der C64 Club Berlin beobachtete im Mai 2019 eine "Auffällige Häufung von Gehäusebrüchen bei SID-Revisionen 6581R4AR".
Man berichtete, ein bisher unbestätigtes Phänomen betrifft die letzte Revision des SID 6581, die häufig von einem Gehäusebruch betroffen sei. Das komme ausschließlich bei diesen, in Hong Kong hergestellten, SIDs vor. Zwei von weit über 60 getesteten "Old-SIDs" wiesen diagonale Brüche im Chip-Gehäuse auf. Bei einem ist der Chip mittig beidseitig leicht diagonal durchgebrochen (Datecode 3086), beim anderen Chip scheint nur die Unterseite aufgebrochen zu sein (Datecode 2286). Inwieweit das mit der geänderten Siliziumqualität (siehe Varianten) zusammenhängt, oder ob es sich um ein Wärmeproblem des im Betrieb befindlichen Die[4] handeln könnte, wurde nicht ermittelt.
Diese Aussage wurde aber umgehend in Zweifel gezogen. Zwei defekte SIDs von über 60 sind nicht statistisch signifikant. Dass dabei die Revision gleich war, dürfte reiner Zufall sein. User im Forum64, die selbst sehr viele SIDs besitzen, konnten dergleichen auch nicht bestätigen, und widersprachen einem solchen "Phänomen" sogar deutlich.
Plus/4-Spiele (Auszug)[Bearbeiten | Quelltext bearbeiten]
Seit etwa Anfang der 1990er Jahren existiert der Trend Software, insbesondere Spiele, Demos und Musikanwendungen, für die C264-Computerserie (C16, C116 und Plus/4) zusätzlich mit SID-Unterstützung auszustatten. Ein kurzer Auszug einiger ausgewählter C264-Spiele, von denen es teilweise auch C64-Umsetzungen gibt:[5]
- Aefro-Mix 1 (1992; Demo)
- Alien 8 (2020)
- ATA (1992)
- Arkanoid +4 (2022)
- Bloby (1994)
- Dizzy: Prince Of The Yolkfolk (1993)
- Eoroid Pro (1993)
- Knight Lore (2019)
- Lala Prologue (2019)
- Lykia - The Lost Island (2022)
- Lykia Prologue - Nathan's Journey (2022)
- MerryXmas (2015; Demo)
- Nu, Pogodi! (2022)
- Nibbly '92 / Nibbly (1992)
- Pentagram (2016)
- Pipe Mania (1992)
- Prince of Persia (2007, unfertig!)
- Robots Rumble (2019)
- Stercore 264 / Stercore 64 (2019)
- Tenebra Macabre (2019)
- Tetris 2K21 (2021)
- Zombie Calavera Prologue (2018)
- Digiloi (2018)
- Where In Time Is Carmen Sandiego? (1993)
- Xmas Demo 93 (1993)
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: MOS Technology SID |
Wikipedia: MOS Technology SID |
- Der SID im Commodore Computer Online Museum
- MOS 6581 SID Datenblatt (PDF Format)
- MOS 6582 SID Datenblatt (PDF Format)
- SIDBrowser, Windowsprogramm zur Verwaltung der HVSC
- MOS 6581 bei Michael Huth
- SID in-depth information site bei Darius Kubarth (Internet Archiv 2022-11-26)
- MOS 6581 (SID) bei Herwig Siebenhofer
- C64 SID-Chip Programmierung
- SID and Music Programming bei Codebase64
Quellen[Bearbeiten | Quelltext bearbeiten]
- ↑ CSDB: Detecting SID type
- ↑ Thema: SID (MOS 6581 R2/3/4) Kompatibilität mit Mainboards auf Forum64.de: Anmerkung zu "AR" in der Bezeichnung
- ↑ SIDKick-Sourcen zum Lesen der POT-Pins
- ↑ Wikipedia: Die (integrated circuit)
- ↑ Liste von C264-Computersoftware mit SID-Unterstützung auf plus4world.powweb.com
Hardware-Aufbau des C64 · Hardware-Portalseite
Komponenten des C64: CPU · VIC · SID · CIA · PLA · RAM · ROM · Farb-RAM