# Systemlautsprecher

Der PC-Lautsprecher ist die Standard-Soundausgabe in IBM-PC-kompatiblen Computern. Der Begriff ist die Übersetzung von englisch PC Speaker und bezeichnet auch den eingebauten Lautsprecher des originalen IBM Personal Computer, der in späteren dazu kompatiblen PCs übernommen wurde. Bevor ungefähr 1990 Soundkarten populär wurden, war er die einzige Möglichkeit, auf einem PC Töne und Klänge zu erzeugen.

## Funktionsweise

Seine Ansteuerungslogik sieht nur zwei Zustände vor: an und aus, was zwei verschiedenen Positionen der Membran entspricht. Somit kann der Lautsprecher normalerweise nur Rechteckschwingungen wiedergeben. Er kann dabei von der Software in zwei Weisen angesteuert werden: Es kann eine Frequenz in den Interrupt-Timer (PIT) eingetragen werden, der den Lautsprecher dann selbsttätig in dieser Frequenz an- und ausschaltet, bis er wieder deaktiviert wird. Alternativ kann die Lautsprechermembran über den Tastatur-Controller explizit in einen der beiden Zustände „angespannt“ oder „locker“ versetzt werden. Eine Lautstärkeregelung für den Systemlautsprecher ist auf den meisten PCs nicht vorgesehen. Die nach heutigen Maßstäben merkwürdige Anbindung über Interrupt-Timer und Tastatur-Controller wurde beim ersten IBM PC von 1981 genutzt, um Chips einzusparen, und später aus Kompatibilitätsgründen beibehalten.

## Erweiterte Klangerzeugung

Um auf dem PC-Lautsprecher Naturklänge, andere Wellenformen als Rechteck, mehrstimmige Musik, oder leisere Klänge ausgeben zu können, haben sich diverse Programmierer daran versucht, per Software einen D/A-Wandler mit Zählmethode zu simulieren. Hierzu wurde das auszugebende Signal gedithert und der Lautsprecher per Timer-Interrupt exakt zum richtigen Zeitpunkt von der CPU an- und ausgeschaltet. Die Störungen sollten dabei im Ultraschallbereich liegen und durch die Trägheit der Membran zu Zwischenstufen verschliffen werden (siehe Diagramm). In der Praxis war dieses Verfahren jedoch entweder so rechenintensiv, dass der Rechner während der Klangausgabe keinerlei anderen Aufgaben erledigen konnte (wie etwa die Änderung des angezeigten Bildinhaltes oder die Abfrage von Eingabegeräten), oder aber das pulsweitenmodulierte Signal war als störendes Piepsen hörbar. Ferner konnte der Timer-Interrupt oft wegen des Vorliegens anderer Interrupts nicht genau im richtigen Moment ausgeführt werden, was zu lautem Knacksen geführt hat. Dennoch wurden solche Techniken in frühen Computerspielen für PCs oft genutzt, da die einzige Alternative war, ganz auf derartige Klänge zu verzichten.
Diese Programme funktionieren wegen ihres komplexen Timings oft nur auf PCs mit einer ganz bestimmten CPU-Geschwindigkeit korrekt, auf deutlich schnelleren PCs sind die zu hörenden Klänge meist nicht mehr die erwünschten. Die Qualität ist somit wesentlich schlechter als bei einem Covox-Stecker.
Moderne Emulatoren für ältere PC-Software, wie etwa DOSBox, können die entsprechenden Klänge recht gut über die externen Lautsprecher ausgeben. Den echten Systemlautsprecher unterstützen sie wegen der damit auf modernen Betriebssystemen (siehe unten) einhergehenden technischen Probleme meist nicht.

## Heutige Nutzung
### BIOS

Viele Systemfirmwares, wie etwa das historische PC-BIOS, nutzen die Möglichkeit, Fehlermeldungen mittels Piepen anzuzeigen. Das ist hilfreich bei der Fehleranalyse nicht mehr startender Computer, bei denen oft keine Bildausgabe und damit auch keine Anzeige von Fehlermeldungen über die Grafikkarte an den Bildschirm mehr möglich ist.

### Tragbare Geräte

Bei den meisten Notebooks wird das Systemlautsprecher-Signal an die eingebaute Soundkarte weitergeleitet und geht so zu den normalen Lautsprechern, bei einigen Laptops wird der Systemlautsprecher jedoch ersatzlos eingespart. Bei Hauptplatinen mit Onboard-Soundkarte ist es teilweise ebenfalls möglich, das Systemlautsprecher-Signal an dieselben externen Lautsprecher zu leiten, die für die Ausgabe der Soundkarten-Klänge zuständig sind.

### Durch Programme

Bis vor wenigen Jahren nutzten verschiedene Programme noch die einfache Möglichkeit, über den Systemlautsprecher Hinweistöne auch bei fehlenden oder abgeschalteten externen Lautsprechern abzuspielen, z. B. benachrichtigten Skype oder das IRC-Programm XChat den Benutzer so über einen ankommenden Anruf bzw. eine Chatanfrage. Jedoch bieten Microsoft-Betriebssysteme ab Windows Vista Anwendungsprogrammen keinen Zugriff mehr auf den echten Systemlautsprecher, solche Zugriffe werden nun zur Soundkarte und damit – sofern vorhanden und eingeschaltet – zu den externen Lautsprechern umgeleitet. Microsoft begründet dies damit, dass der Systemlautsprecher veraltet sei. Die einzige Möglichkeit, unter diesen Betriebssystemen auf den Systemlautsprecher zuzugreifen, besteht in der Verwendung eines unsignierten Treibers, was jedoch eine Reihe neuer Probleme mit sich bringt. Auf Linux-Systemen ist im Allgemeinen auch heute noch die Nutzung des Systemlautsprechers für einfache Piepstöne möglich, jedoch nicht für die oben beschriebenen komplexen Klänge, da sich die entsprechenden zeitkritischen Methoden kaum in ein modernes Multitasking-Betriebssystem ohne Realtime-Auslegung integrieren lassen.

### Programmierung

Der Befehl putchar('\a'); reicht in C-Code bei Verwendung der Konsolenausgabe aus, um einen „Alert“ (entlehnt aus dem englischen alert, für „Alarm“) auszugeben, welcher früher (bei Microsoft bis Windows XP) üblicherweise in Form eines Piepstons aus dem Systemlautsprecher realisiert wurde.