SID

Aus C64-Wiki
Wechseln zu: Navigation, Suche
(thumbnail)
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. 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.

Inhaltsverzeichnis



(thumbnail)
SID 6582 (Rev.5, 1992)

In der Urfassung des C64, den C128 mit Tastaturgehäuse, den C128D und in den CBM-II-Modellen wurde der SID 6581 verbaut, in neueren C64 und in den C128DCR-Modellen wurde eine überarbeitete Version des SID mit der Bezeichnung 8580 eingebaut. Der 8580-Chip wurde in seltenen Fällen auch als SID 6582 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.


(thumbnail)
SID 6581 Rev.3 (1985)

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, wie zum Beispiel den SwinSID.


[Bearbeiten] Varianten

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
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 6481R4AR (Advanced Resonance) ist für seinen besonders markanten Klang bekannt.

[Bearbeiten] Speicheradressen des SID

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
$D040-$D05F 53312-53343 Stereo-Chip
$D500-$D7FF 54528-55295 SID-Chip-Ergänzungen

[Bearbeiten] Pinbelegung

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

[Bearbeiten] Programmierung

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.

[Bearbeiten] Links

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

[Bearbeiten] Quellen

  1. CSDB: Detecting SID type Sprache:englisch
In anderen Sprachen