Herwig Siebenhofer
 / Home / C64
 
C 64

    Memory Map
    Float Map
    ROM Map
    Basic ROM
    Kernal ROM
    Char ROM
    CPU 6510
    VIC 6569
    SID 6581
    CIA 6526
    PLA
    Keyboard
    Control-Ports
    sonstige Ports

    Bauteile
    Schematik 1
    Schematik 2
    Bus-Schematik
    HF-Modulator
    Datasette
    Reset

C 1541  Floppy

    Blockschaltbild
    Memory Map
    Rom Listing
    Schematik
    VIA 6522
    Service

C 1581  Floppy

    Memory Map
    Rom Listing
    Schematik
    CIA 8520
    WD 1772

Archiv

    Mouse 1531
    Float-Formate
    Screenshots
    Korrekturen
    Chip 74xx
 

MOS 6581 Sound Interface Device (SID)

D400Voice 1: Frequency Control - Low-Byte
D401Voice 1: Frequency Control - High-Byte
D402Voice 1: Pulse Waveform Width - Low-Byte
D4037-4   Unused
3-0   Voice 1: Pulse Waveform Width - High-Nybble
D404Voice 1: Control Register
7   Select Random Noise Waveform, 1 = On
6   Select Pulse Waveform, 1 = On
5   Select Sawtooth Waveform, 1 = On
4   Select Triangle Waveform, 1 = On
3   Test Bit: 1 = Disable Oscillator 1
2   Ring Modulate Osc. 1 with Osc. 3 Output, 1 = On
1   Synchronize Osc. 1 with Osc. 3 Frequency, 1 = On
0   Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D405Envelope Generator 1: Attack / Decay Cycle Control
7-4   Select Attack Cycle Duration: O-15
3-0   Select Decay Cycle Duration: 0-15
D406Envelope Generator 1: Sustain / Release Cycle Control
7-4   Select Sustain Cycle Duration: O-15
3-0   Select Release Cycle Duration: O-15
D407Voice 2: Frequency Control - Low-Byte
D408Voice 2: Frequency Control - High-Byte
D409Voice 2: Pulse Waveform Width - Low-Byte
D40A7-4   Unused
3-0   Voice 2: Pulse Waveform Width - High-Nybble
D40BVoice 2: Control Register
7   Select Random Noise Waveform, 1 = On
6   Select Pulse Waveform, 1 = On
5   Select Sawtooth Waveform, 1 = On
4   Select Triangle Waveform, 1 = On
3   Test Bit: 1 = Disable Oscillator 1
2   Ring Modulate Osc. 2 with Osc. 1 Output, 1 = On
1   Synchronize Osc. 2 with Osc. 1 Frequency, 1 = On
0   Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D40CEnvelope Generator 2: Attack / Decay Cycle Control
7-4   Select Attack Cycle Duration: O-15
3-0   Select Decay Cycle Duration: 0-15
D40DEnvelope Generator 2: Sustain / Release Cycle Control
7-4   Select Sustain Cycle Duration: O-15
3-0   Select Release Cycle Duration: O-15
D40EVoice 3: Frequency Control - Low-Byte
D40FVoice 3: Frequency Control - High-Byte
D410Voice 3: Pulse Waveform Width - Low-Byte
D4117-4   Unused
3-0  Voice 3: Pulse Waveform Width - High-Nybble
D412Voice 3: Control Register
7   Select Random Noise Waveform, 1 = On
6   Select Pulse Waveform, 1 = On
5   Select Sawtooth Waveform, 1 = On
4   Select Triangle Waveform, 1 = On
3   Test Bit: 1 = Disable Oscillator 1
2   Ring Modulate Osc. 3 with Osc. 2 Output, 1 = On
1   Synchronize Osc. 3 with Osc. 2 Frequency, 1 = On
0   Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D413Envelope Generator 3: Attac/Decay Cycle Control
7-4   Select Attack Cycle Duration: O-15
3-0   Select Decay Cycle Duration: 0-15
D414Envelope Generator 3: Sustain / Release Cycle Control
7-4   Select Sustain Cycle Duration: O-15
3-0   Select Release Cycle Duration: O-15
D415Filter Cutoff Frequency: Low-Nybble (Bits 2-O)
D416Filter Cutoff Frequency: High-Byte
D417Filter Resonance Control / Voice Input Control
7   Select Filter Resonance: 0-15
6   Select Filter Resonance: 0-15
5   Select Filter Resonance: 0-15
4   Select Filter Resonance: 0-15
3   Filter External Input: 1 = Yes, 0 = No
2   Filter Voice 3 Output: 1 = Yes, 0 = No
1   Filter Voice 2 Output: 1 = Yes, 0 = No
0   Filter Voice 1 Output: 1 = Yes, 0 = No
D418Select Filter Mode and Volume
7   Cut-Off Voice 3 Output: 1 = Off, O = On
6   Select Filter High-Pass Mode: 1 = On
5   Select Filter Band-Pass Mode: 1 = On
4   Select Filter Low-Pass Mode: 1 = On
3   Select Output Volume: 0-15
2   Select Output Volume: 0-15
1   Select Output Volume: 0-15
0   Select Output Volume: 0-15
D419Analog/Digital Converter: Game Paddle 1 (O-255)
D41AAnalog/Digital Converter Game Paddle 2 (O-255)
D41BOscillator 3 Random Number Generator
D41C    Envelope Generator 3 Output

 

 
Pin 1-2Cap 1A/B  Capacitor 1: Programierbarer Filter; im C-64 nicht benutzt
Pin 3-4Cap 2A/BCapacitor 2: Programierpbarer Filter; im C-64 nicht benutzt
Pin 5!RESIRESet: Setzt bei LOW alle Register auf 0
Pin 6ø2IPhi2: Systemtakt
Pin 7R/!WILOW=Schreibzugriff, HIGH=Lesezugriff
Pin 8!CSIChip select: LOW=Buszugriff möglich, HIGH=Trennung vom Bus ('tri-state')
Pin 9-13A0-A4IAddressbus: Selektierung der 29 Register
Pin 14GNDGrouND: Masse (0V)
Pin 15-22  D0-D7  I/O  Datenbus
Pin 23Pot YIPOTentiometer Y
Pin 24Pot XIPOTentiometer X
Pin 25VccSupply voltage: +5V DC
Pin 26Extern inIExternal Input: max. Eingangsspannung 0,6 V
Pin 27Audio outOAudio output
Pin 28VddSecondary voltage: +12V DC

Konzept

Das 6581 Sound Interface Device (SID) ist ein 3 Kanal Musiksynthesizer Sound-Effektgenerator, der kompatibel mit der 65xx-Chipfamilie ist. Der SID stellt Kontrollfunktionen über 16-Bit Frequenzen, Tonfarbe (Harmonie) and Dynamik (Volume) zur Verfügung. Die speziellen Hardwareeigenschaften minimieren die Aufwand für die Programmierung. Deshalb ist der SID speziell im Bereich von Videogames und low-cost Musikinstrumenten geeignet.

Funktionen

3 Ton-Oszillatorenvon 0 bis 4 KHz
4 Wellenformen pro OszillatorDreieck, Sägezahn, Rechteck, Rauschen
3 Amplituden Modulatoren48 dB
3 Hüllkurven-GeneratorenAnschlag (Attack): 2 ms bis 8 s
Abschwellen (Decay): 6 ms bis 24 s
Halten (Substain): Lautstärke 0 bis Reg 24-Wert
Ausklingen (Release): 6 ms bis 24 s
Osizillator Synchronisierung    
Ring-Modulation
programmierbare FilterCutoff Bereich: 30 Hz bis 12 KHz
12 db/Oktav Rolloff
Lowpaß- Bandpaß und Hochpaßfilter
Notch Outputs
variable Resonanz
Master Volume Kontrolle
2 A/D-Wandlerfür Paddles (Pot-Interfaces)
Zufallszahlgenerator
externer Audio-Input

Beschreibung

Der 6581 beinhaltet drei Synthesizer-„Stimmen”, welche entweder unabhängig von einander oder in Verbindung zueinander oder einer externen Tonquelle verwendet werden können. Jede Stimme besteht aus einem Ton-Oszillator, Wellenformgenerator, Hüllkurven-Generator und einen Amplitudenmodulator. Der Ton-Oszillator produziert vier Wellenformen bei der gewählten Frequenz. Die Volume-Dynamik des Oszillators wird über den Amplitudenmodulator in Zusemmenhang mit dem Hüllkurvengenerator kontrolliert. Zusätzlich gibt es einen programmierbaren Filter zum Erstellen komplexer dynamischer Tonfarben (subtractive synthesis).

Der SID erlaubt der CPU das Lesen aus dem dritten Oszillator und dem dritten Hüllkurvengenerator. Diese Informationen können zur Erstellung von fibrierenden Frequenzen, Filterwechsel und ähnlichen Effekten genutzt werden. Die zwei A/D-Wandler dienen dem Anschluß von Potentiometern (an den Control-Ports des C64 verfügbar, für z.B. Paddles). Weiters erlaubt der SID die Verarbeitung externer Tonquellen, bspw. über den Einsatz von Hoch-, Tief und Bandpassfilter.

SID Kontrollregister

Der SID verfügt über 29 Register – zu jeweils 8 Bit – welche für die Einstellungen der Tongenerierung sowie der Abfrage der Paddles zuständig sind. Ein Register kann entweder nur geschrieben oder nur gelesen werden.

Register für Stimme 1 (Voice 1):

Reg.     Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0      Name      Typ
00F7F6F5F4F3F2F1F0Freq LoW
01F15F14F13F12F11F10F9F8Freq HiW
02PW7PW6PW5PW4PW3PW2PW1PW0PW LoW
03PW11PW10PW9PW8PW HiW
04NoiseRecht.Säge.Drei.TestRingSyncGateControlW
05Atk 3ATK 2Atk 1Atk 0Dcy 3Dcy 2Dcy 1Dcy 0Atk/DcyW
06Stn 3STN 2Stn 1Stn 0Rls 3Rls 2Rls 1Rls 0Stn/RlsW

Register für Stimme 2 (Voice 2):

Reg.     Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0      Name      Typ
07F7F6F5F4F3F2F1F0Freq LoW
08F15F14F13F12F11F10F9F8FREQ HiW
09PW7PW6PW5PW4PW3PW2PW1PW0PW LoW
0APW11PW10PW9PW8PW HiW
0BNoiseRecht.Säge.Drei.TestRingSyncGateControlW
0CAtk 3Atk 2Atk 1Atk 0Dcy 3Dcy 2Dcy 1Dcy 0Atk/DcyW
0DStn 3Stn 2Stn 1Stn 0Rls 3Rls 2Rls 1Rls 0Stn/RlsW

Register für Stimme 3 (Voice 3):

Reg.     Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0      Name      Typ
0EF7F6F5F4F3F2F1F0Freq LoW
0FF15F14F13F12F11F10F9F8Freq HiW
10PW7PW6PW5PW4PW3PW2PW1PW0PW LoW
11PW11PW10PW9PW8PW HiW
12NoiseRecht.Säge.Drei.TestRingSyncGateControlW
13Atk 3Atk 2Atk 1Atk 0Dcy 3Dcy 2Dcy 1Dcy 0Atk/DcyW
14Stn 3Stn 2Stn 1Stn 0Rls 3Rls 2Rls 1Rls 0Stn/RlsW

Filter Register:

Reg.     Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0      Name      Typ
15FC2FC1FC0FC LoW
16FC10FC9FC8FC7FC6FC5FC4FC3FC HiW
17Res3Res2Res1Res0Filt XFilt 3Filt 2Filt 1Res/FiltW
183 offHPBPLPVol 3Vol 2Vol 1Vol 0Mode/VolW

Sonstige Register (Misc.):

Reg.     Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit 0      Name      Typ
19PX7PX6PX5PX4PX3PX2PX1PX0Pot XR
1APY7PY6PY5PY4PY3PY2PY1PY0Pot YR
1BO7O6O5O4O3O2O1O0Osc3/RndR
1CE7E6E5E4E3E2E1E0Env3R

Beschreibung der Register für Stimme 1 (Voice 1):

Register 00:  Freq Lo
Register 01:  Freq Hi

Diese beiden Register enthalten einen 16 Bitwert für die Frequenz des Oszillators 1. Die Frequenz errechnet sich wie folgt:

    Fout = (16-Bitwert * Taktfrequenz / 16.777.216)   [Hz]

Register 02:  PW Lo
Register 03:  PW Hi

Diese beiden Register enthalten einen 12 Bitwert (Bit 4 bis Bit 7 von Register 3 ist ohne Bedeutung) für die Pulsweite für Oszillator 1. Die Pulsweite errechnet sich wie folgt:

    PWout = (12-Bitwert / 40,95) [%]

Register 04:  Control

Dieses Register enthält 8 verschiedene Kontrollbits für Oszillator 1. Diese sind:

Bit 0: Das Gate-Bit kontrolliert den Hüllkurvengenerator von Oszillator 1. Wird es gesetzt, so wird Anschlag, Abschwellen und Halten (A/D/S) intialisiert, wird es gelöscht, so wird die Ausklingphase (R) gestartet. Damit der Oszillator 1 einen Ton von sich gibt muss dieses Bit also gesetzt werden. Der Hüllkurvengenerator beeinflusst die Aplitudenmodulation (siehe Blockdiagramm).

Bit 1: Das Sync-Bit synchronisiert die Frequenz von Oszillator 1 mit der Frequenz von Oszillator 3. Die Frequenz von Oszillator 3 muss dabei größer als 0 und kleiner als die von Oszillator 1 sein.

Bit 2: Das Ring-Bit ersetzt eine Dreieckswellenform durch eine Ringmodulation von Oszillator 1 mit Oszillator 3. Die Frequenz von Oszillator 3 muss dabei größer als 0 sein.

Bit 3: Wird das Test-Bit gesetzt, wir ein Reset für Oszillator 1 ausgeführt und dieser gesperrt bis das Test-Bit wieder gelöscht wird.

Bit 4: Diese Bit aktiviert die Dreieckswellenform
Bit 5: Diese Bit aktiviert die Sägezahnwellenform
Bit 6: Diese Bit aktiviert die Rechteckswellenform
Bit 7: Diese Bit aktiviert die Noise-Wellenform

Zum Erzeugen eines Tons muss mindestens eine Wellenform gesetzt sein. Werden mehrere gesetzt wird jene Wellenform des am niedirgsten gesezten Bits verwendet.

Register 05:  Anschlag und Abschwellen (Attack/Decay)

Die Bits 4 bis 7 sind für die 16 verschiedenen Anschlagwerte des Hüllkurvengenerators von Oszillators 1 zuständig. Sie legen fest, wie schnell die festgelegte maximale Lautstärke erreicht wird (siehe Tabelle). Die Bits 0 bis 3 sind für die 16 verschiedenen Abschwellwerte zuständig und legen fest, wie schnell die Lautstärke auf den Abschwellwert sinken (siehe Tabelle).

Register 06:  Halten und Ausklingen (Sustain/Release)

Die Bits 4 bis 7 sind für den Haltewert des Hüllkurvengenerators von Oszillator 1 zuständig. Sie legen fest, wie hoch der zu haltende Abschwellwert ist. Die Höhe der Amplitude errechnet sich aus dem Vielfachen vom Sechzehntel der Anschlagamplitude. Ein Wert von 8 bspw. hält auf halber Lautstärke des Anschlagmaximums. Die Haltephase dauert bis zum Löschen des Gate-Bits (siehe Register 4) an. Die Bits 0 bis 3 sind für die 16 verschiedenen Ausklingwerte zuständig und legen fest, wie schnell die Lautstärke von der Haltephase auf 0 ausklingen (siehe Tabelle).

Tabelle: Hüllkurvenraten

Wert   Anschlagrate
   (Zeit pro Takt)
    Abschwell- und
    Ausklingrate
02 ms6 ms
18 ms24 ms
216 ms48 ms
324 ms72 ms
438 ms114 ms
556 ms168 ms
668 ms204 ms
780 ms240 ms
8100 ms300 ms
9240 ms750 ms
A500 ms1.5 s
B800 ms2.4 s
C1 s3 s
D3 s9 s
E5 s15 s
F8 s24 s

Beschreibung der Register für Stimme 2 (Voice 2):

Für die Register 7 bis D gilt das Selbe wie für die Register 0 bis 6 mit der Maßgabe, dass statt Oszillator 1 der Oszillator 2 kontrolliert wird und dass bei den Modulationen eine Kombination von Oszillator 2 mit Oszillator 1 eintritt.

Beschreibung der Register für Stimme 3 (Voice 3):

Für die Register E bis 14 gilt das Selbe wie für die Register 0 bis 6 mit der Maßgabe, dass statt Oszillator 1 der Oszillator 3 kontrolliert wird und dass bei den Modulationen eine Kombination von Oszillator 3 mit Oszillator 2 eintritt.

Beschreibung der Filterregister:

Register 15:  Cut-off Frequenz (FC Lo)
Register 16:  Cut-off Frequenz (FC Hi)

Diese beiden Register enthalten einen 11 Bitwert (Bit 3 bis Bit 7 von Register 15 ist ohne Bedeutung) für eine Cut-off Frequenz zwischen 30 Hz und 12 KHz.

Register 17:   Resonanz und Filteranwendung (Res/Filt)

Bits 4 bis 7 legen die Resananz bei der Cut-off-Frequenz fest. Ein Wert von 0 bedeutet keine Resonanz. Die Bits 0 bis 3 legen die Verwendung der Filter für die Stimmen und das externe Audiosignal fest und zwar:

Bit 0: Ist dieses Bit gesetzt werden für Stimme 1 die Filtereinstellungen verwendet. Ist dieses Bit gelöscht, so wird Stimme 1 ungefiltert ausgegeben.

Bit 1: gleiche Bedeutung für Stimme 2
Bit 2: gleiche Bedeutung für Stimme 3
Bit 3: gleiche Bedeutung für externes Audiosignal

Register 18:   Begrenzungsfilter, „3 off” und Lautstärke (Mode/Vol)

Die Bits 0 bis 3 sind für die 16 Gesamtlautstärkewerte zuständig. Ein Wert von 0 bedeutet keine Ausgabe. Damit der SID einen Ton von sich gibt muss ein Wert ungleich 0 gewählt werden.

Bit 4: Wird dieses Bit gesetzt wird der Tiefpassfilter aktiviert
Bit 5: Wird dieses Bit gesetzt wird der Bandpassfilter aktiviert
Bit 6: Wird dieses Bit gesetzt wird der Hochpassfilter aktiviert
Bit 7: Wird dieses Bit gesetzt wird der Ausgang von Oszillator 3 von der dirkten Ausgabe getrennt

Beschreibung der sonstigen Register (Misc):

Register 19:   A/D-Wandler (Pot X)

8-Bit Analog/Digital-Wandler für den Wert eines Potentiometers. (Bit 9 der Control-Ports)

Register 1A:   A/D-Wandler (Pot Y)

8-Bit Analog/Digital-Wandler für den Wert eines Potentiometers. (Bit 5 der Control-Ports)

Register 1B:   Oszillator 3 / Zufallszahl (Osc3/Rnd)

Über dieses Register können die höchsten 8 Ausgabebits von Oszillator 3 gelesen werden. Da der Oszillator 3 über „3 off” für den Lautsprecher stumm geschalten werden kann, die Wert jedoch weiter generiert werden, kann dieses Register auch als Zufallszahlgenerator verwendet werden.

Register 1C:   Hüllkurvenwert von Oszillator 3 (Env 3)

Über dieses Register können die höchsten 8 Ausgabebits des Hüllkurvengenerators von Oszillator 3 gelesen werden.

SID Charakteristik

maximale Belastung

Symbol   Wert
BetriebsspannungVdd-0.3 bis +17 V
BetriebsspannungVcc-0.3 bis +7 V
Eingangsspannung (analog)Vina-0.3 bis +17 V
Eingangsspannung (digital)   Vind-0.3 bis +7 V
BetriebstemperaturTa0 bis +70 °C
LagertemperaturTstg-55 bis +150 °C

Elektrik

Vdd = 12 V ±5%
Vcc = 5 V ±5%
Ta  = 0 bis 70 °C

Symbol  MinTypMax
Input High VoltageVih2 V-Vcc
Input Low VoltageVil-0.3 V-0.8 V
Input Leakage CurrentIin--2.5 μA
Three-State (Off)Itsi--10 μA
Input Leakage Current    Vin0.4 V-2.4 V
Output High VoltageVoh2.4 V--0.7 V
Output Low VoltageVolGND-0.4 V
Output High CurrentIoh200 μA--
Output Low CurrentIol3.2 mA--
Input CapacitanceCin--10 pF
Pot Trigger VoltageVpot-Vcc/2-
Pot Sink CurrentIpot500 μA--
Input Impedance Rin100 kΩ    150 kΩ-
Audio Input VoltageVin5.7 V6 V6.3 V
-0.5 V3 V
Audio Output VoltageVout5.7 V6 V6.3 V
One Voice On:0.4 V0.5 V0.6 V
All Voices On:1.0 V1.5 V2.0 V
Power Supply CurrentIdd-20 mA25 mA
Power Supply CurrentIcc-70 mA100 mA
Power DissipationPd-600 mW    1000 mW

SID Timing

NameminTypmax
TcycClock Cycle Time1 μs-20 μs
TcClock High Pulse Widtch    450 ns    500 ns    10000 ns
Tr, Tf    Clock Rise/Fall Time--25 ns
TrsRead Set-Up Time0 ns--
TrhRead Hold Time0 ns--
TaccAccess Time--300 ns
TahAddress Hold Time10 ns--
TchChip Select Hold Time0 ns--
TdhData Hold Time20 ns--

NameminTyp    max
TwWrite Pulse Width300 ns    --
TwhWrite Hold Time0 ns--
Taws    Address Set-up Time0 ns--
TahAddress Hold Time10 ns--
TchChip Select Hold Time    0 ns--
TvdValid Data80 ns--
TdhData Hold Time10 ns--

Typische SID-Schaltung

Frequenzwerte für Musik-Noten

Damit nicht wertvolle Rechenzeit für das Ermitteln eines Wertes für eine Musiknote benötigt wird, wird üblicher Weise auf eine Tabelle zurückgegriffen. Hierfür sind nur die 12 Noten einer Oktav nötig, da der selbe Ton eine Oktav höher genau den doppelten Wert hat. Untenstehend sind die ersten zwei Oktaven abgebildet. Zu beachten sind Abweichen auf Grund von Rundungen. Da der Wert von der Taktfrequenz des Chips (Eingang Phi 0) abhängig ist werden untenstehend sowohl die Werte für die PAL-Version des C64 (0,98 MHz) als auch für den 1 MHz Referenzwert von MOS angegeben. Der 16-Bit Zahlenwert ist hier im Hex-Format aufgelistet.

Note    Frequenz        Werte für die Taktfrequenzen
  (C64 PAL)    (1 MHz)  
C-016,35 Hz01160112
C#-017,32 Hz01270123
D-018,35 Hz01390134
D#-019,44 Hz014B0146
E-020,60 Hz015F015A
F-021,83 Hz0174016E
F#-023,12 Hz018A0184
G-024,50 Hz01A1018B
G#-025,96 Hz01BA01B3
A-027,50 Hz01D401CD
A#-029,14 Hz01F001E9
H-030,87 Hz020E0206
C-132,70 Hz022D0225
C#-134,65 Hz024E0245
D-136,71 Hz02710268
D#-138,89 Hz0296028C
E-141,20 Hz02BE02B3
F-143,65 Hz02E702DC
F#-146,25 Hz03140308
G-149,00 Hz03420336
G#-151,91 Hz03740367
A-155,00 Hz03A9039B
A#-158,27 Hz03E003D2
H-161,74 Hz041B040C

Logische Realisierung der Hüllkurven

Dreieck:

Der Eingang ist ein steigender 12 Bit-Zähler, wovon das höchste Bit mittels einer Exlusiv-Oder-Funktion mit den anderen Bits verknüpft wird. Dadurch wird am Ausgang der Verknüpfung zuerst von 0 auf 2047 hochgezählt und anschließend von 2047 auf 0 wieder herunter. Durch diese sehr einfache Realisierung kann kein exaktes Dreiecksignal erreicht werden, da sowohl der Wert 0 als auch der Wert 2047 hinter einander doppelt vorkommt. Es liegt also richtigerweise das kleinste Trapetzsignal vor, was allerdings dem Dreieck derart nahe kommt, dass diese Ungenauigkeit vernachlässigt werden kann. Um wieder auf einen 12-Bitwert zu kommen, wird eine Stelle nach links geshiftet.

Sägezahn:

Der 12 Bit-Zähler wird einfach übernommen.

Rechteck:

Ist das höchste Bit des Zählers gesetzt werden am Ausgang der Verknüpfung alle Bits ebenfalls gesetzt, ansonsten alle gelöscht.

Noise:

Die höchsten 12 Bit eines 23-Bit Pseudozufallsgenerators werden übernommen. Gleichzeitig dienen diese für die Generierung der nächsten Zufallszahl (untere 11 Bit der Zufallszahl). Es wird jeweils um 11 Stellen geschiftet, so dass das niedrigste Bit am Ausgang bei der nächsten Zahl das höchste Bit ist.

ADSR-Verlauf

Die angegebenen Poke-Adressen (54277/54278) gelten für Stimme 1. Stimme 2 wird über 54284/54285 und Stimme 3 über 52291/52292 angesteuert.