SID

Aus C64-Wiki
(Weitergeleitet von 8580)
Zur Navigation springenZur Suche springen
SID 6581 Rev.4AR (1987)

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]

Pin Beschreibung
SID-Pinbelegung.png CAP1A, CAP1B Kondensator (engl. Capacitor) 1 des Filters
CAP2A, CAP2B Kondensator 2 des Filters
RES Reseteingang - Ein Low-Pegel versetzt alle internen Register in den Grundzustand und schaltet die Tonausgabe aus
Φ2 (phi2) Eingang für den Systemtakt
R/W High-Pegel = Register lesen (READ), Low-Pegel = Register schreiben (WRITE)
CS Chip Select - ein Low-Pegel an diesem Eingang bedeutet, dass die Daten am Datenbus gültig sind
A0 - A4 Mit diesen fünf Adresseingängen wird eines der internen Register angewählt
GND Systemmasse
Vdd Zweite Versorgungsspannung: +12 V (6581) oder +9 V (6582, 8580) DC
AUDIO OUT Audio-Ausgang
EXT IN Eingang für externe Stimme
Vcc Versorgungsspannung +5 V DC
POT X Eingang für Potentiometer (Paddle) X-Achse
POT Y Eingang für Potentiometer (Paddle) Y-Achse
D0 - D7 Datenbus Bits 0 - 7


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:

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]

"Nibbly '92" (Titelbild) gibt es auch als Plus/4-Version mit SID-Unterstützung.

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]

Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: MOS Technology SID
WP-W11.png Wikipedia: MOS Technology SID Sprache:english

Quellen[Bearbeiten | Quelltext bearbeiten]