Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG steht für 'programmable Einleitung: Sound MAIN FIRMWARE JUMPBLOCK: SOUND MANAGER Die Firmware des Schneider CPC: SOUND MANAGERsound generator'. Es handelt sich hierbei also um das IC, das im Schneider CPC der Einleitung: SoundTonerzeugung dient. Dieses IC von General Instruments ist dabei besonders vielseitig einsetzbar, weil es sehr viele Die Fließkomma-Routinen: FunktionenFunktionen enthält, die alle durch die Die ICs im Überblick: Die CPU Z80 Das Innenleben der CPC-Rechner: Die CPU Z80 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80CPU programmierbar sind. Entwickelt wurde es in der Zeit, als die ersten Telespiele noch mit recht langweiligen Piepsern um die Gunst der Kunden warben.
Außerdem ist in diesem Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG noch eine bidirektionale Parallelschnittstelle implementiert, also ein Tor zur Aussenwelt, durch das Daten sowohl ausgegeben als auch gelesen werden können. Dieser Port wird im Schneider aber ausschließlich für Eingabezwecke benutzt: An ihm ist die Lese-Seite der Tastenmatrix angeschlossen. Diesen Port also als Ausgang zu programmieren, ist Garbage Collection: ... beim CPC 464beim CPC nur in Ausnahmefällen sinnvoll.
Der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 ist sehr einfach in ein System zu integrieren: Er benötigt nur eine einfache Spannungsversorgung von 5 Volt und einen Eingangstakt. Was er machen soll, bekommt er über 8 Datenleitungen und zwei Steuerleitungen mitgeteilt, die allesamt an Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO angeschlossen sind.
Dabei werden alle Signale im Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG durch Teilen eines Eingangstaktes erzeugt, der im Schneider CPC genau 1 MHz beträgt.
Die Möglichkeiten dieses Einleitung: Sound MAIN FIRMWARE JUMPBLOCK: SOUND MANAGER Die Firmware des Schneider CPC: SOUND MANAGERSound Chips sind sehr umfassend: Er hat drei Tonkanäle, die getrennt programmiert werden können. Im Schneider CPC werden sie in zwei Gruppen aufgeteilt und dem Stereo-Ausgang zugeführt: Operationen: BD5B / 349A / 349A: FLO SUBA+LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB/2 bilden den linken Kanal, LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB/2+C den rechten. Für den eingebauten Lautsprecher werden aber alle drei Kanäle zusammengefasst.
Für jeden Tonkanal kann getrennt die Lautstärke und Frequenz eingestellt werden. Die Lautstärke dabei in 15 Stufen, die sogar ein logarithmisches Raster haben, was dem menschlichen Hörempfinden sehr entgegen kommt.
Die Frequenz wird allerdings in einer linearen Skalierung angegeben, obwohl hier das logarithmische Raster noch viel mehr angebracht wäre. Der Grund für die lineare Teilung der Tonperioden-Längen ist, dass alle Töne durch Teilen des Eingangstaktes erzeugt werden.
Für alle Kanäle zusammen gibt es auch noch einen Hüllkurvengenerator. Wählt man diesen an, wird die Lautstärke des entsprechenden Kanals von ihm bestimmt. Man hat dabei die Auswahl zwischen acht verschiedenen Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurvenformen, die alle Kombinationen aus fallenden und steigenden Sägezahnflanken sind. Dabei kann man die Geschwindigkeit, mit der die Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurven abgearbeitet werden sollen, in weiten Grenzen einstellen.
Ebenfalls für alle Kanäle gemeinsam ist ein Rauschgenerator. Dessen Grundfrequenz ist in 32 Schritten einstellbar. Mit ihm kann man beispielsweise sehr realistische Knall- und Schussgeraeusche, oder die Percussion zu einem Musikstueck realisieren.
_____ _____
Ton-Ausgang Kanal C <-- o|1 \/ 28|o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus Der Zeichensatz des Schneider CPC: &D0 = 208D0
Erklärung der Anschlussbelegung: TestTest --> o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D1
Erklärung zu den Anschlüssen: Vcc und Vss Erklärung zu den Anschluss-Bezeichnungen: Vcc und VssVcc = +5 Volt o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D2
Ton-Ausgang Kanal LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB <-- o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D3
Ton-Ausgang Kanal Operationen: BD5B / 349A / 349A: FLO SUBA <-- o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D4
Erklärung zu den Anschlüssen: Vcc und Vss Erklärung zu den Anschluss-Bezeichnungen: Vcc und VssVss = 0 Volt o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D5
I/O-Port A7 <-> o| Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D6
I/O-Port A6 <-> o| |o <-> Erklärung zu den Anschlüssen: D0 bis D7Datenbus D7
I/O-Port A5 <-> o| |o <-- Bus-Control BC1
I/O-Port A4 <-> o| |o <-- Bus-Control BC2
I/O-Port A3 <-> o| |o <-- Bus-Direction Erklärung der Anschlussbelegung: BDIRBDIR
I/O-Port A2 <-> o| |o <-- (1) Erklärung zu den Anschluss-Bezeichnungen: CS - Chip SelectChip select Erklärung der Anschlussbelegung: A8 Der Zeichensatz des Schneider CPC: &A8 = 168A8
I/O-Port A1 <-> o| |o <-- (0) Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Reset Erklärung zu den Anschluss-Bezeichnungen: RESET Erklärung der Anschlussbelegung: Reset Erklärung zu den Bezeichnungen: RESET Erklärungen zu den Anschlussbezeichnungen: RESET Erläuterung zu den Anschlüssen 40 bis 45: 41 - RESET (0)Reset
I/O-Port Der Zeichensatz des Schneider CPC: &A0 = 160A0 <-> o|____________|o <-- Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt Erklärung der Anschlussbelegung: Takt Erklärung zu den verwendeten Bezeichnungen: TaktTakt
Die Schnittstellen der Schneider CPCs: Die StromversorgungDie Stromversorgung des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG erfolgt über die mit Erklärung zu den Anschlüssen: Vcc und Vss Erklärung zu den Anschluss-Bezeichnungen: Vcc und Vss Erklärung zu den verwendeten Bezeichnungen: Vcc und Vss Erklärung zu den Bezeichnungen: Vcc und VssVcc und Vss benannten Eingänge. Dabei wird an Pin 3 (Erklärung zu den Anschlüssen: Vcc und Vss Erklärung zu den Anschluss-Bezeichnungen: Vcc und VssVcc) +5 Volt und an Pin 6 (Erklärung zu den Anschlüssen: Vcc und Vss Erklärung zu den Anschluss-Bezeichnungen: Vcc und VssVss) 0 Volt, also Masse angeschlossen.
Der Eingang Erklärung der Anschlussbelegung: TestTEST wird im Betrieb nicht beschaltet. Er dient dazu, den Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG nach der Herstellung auf Funktionstüchtigkeit zu prüfen.
An den Pins 1, 4 und 5 liegt das Ausgangssignal der Tonkanäle C, LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB und Operationen: BD5B / 349A / 349A: FLO SUBA an. Diese werden im Schneider CPC über Wiederstände für den Stereo-Ausgang und den eingebauten Lautsprecher teilweise wieder zusammengemischt.
Die Speicher und Peripherie: Die Anschlüsse am Schneider CPCAnschlüsse 7 bis 14 sind der im Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG integrierte, bidirektionale I/O-Port. Der Port kann aber nur als Ganzes für Ein- oder Ausgabe programmiert werden. Im Schneider CPC wird er benutzt, um Einleitung: Die Tastatur Anhang: Die Tastaturdie Tastatur einzulesen. Die Bezeichnungen Erklärung der Anschlussbelegung: A0 bis A7A0 bis A7 könnten irrigerweise auf einen Adress-Anschluss hindeuten. Es ist aber der (Daten-) Port des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912. Das 'Operationen: BD5B / 349A / 349A: FLO SUBA' resultiert daher, dass ein verwandtes IC zwei Ports hat, die 'Operationen: BD5B / 349A / 349A: FLO SUBA' und 'LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB' genannt wurden.
Pins 21 bis 28 sind die Speicher und Peripherie: Die Anschlüsse am Schneider CPCAnschlüsse an den Erklärung zu den Anschlüssen: D0 bis D7Datenbus und damit auch zur Die ICs im Überblick: Die CPU Z80 Das Innenleben der CPC-Rechner: Die CPU Z80 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80CPU. Hierüber wird der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG programmiert und Daten von und zum Port übermittelt. Im Schneider CPC sind aber auch diese Speicher und Peripherie: Die Anschlüsse am Schneider CPCAnschlüsse über Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO geführt.
Pin 15 ist der Takteingang, dessen Frequenz beim Schneider CPC 1 MHz beträgt.
Wird Pin 16 auf Masse gelegt, so wird der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG neu initialisiert und die Einleitung: SoundTonerzeugung auf allen Kanälen abgestellt.
Um den Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG anzusprechen, muss an Pin 17, Erklärung zu den Anschluss-Bezeichnungen: CS - Chip SelectCHIP SELECT, eine positive Spannung anliegen. Andernfalls haben die Steuersignale BC1, BC2 und Erklärung der Anschlussbelegung: BDIRBDIR keine Wirkung. Dieser Eingang ist beim Schneider CPC fest auf +5 Volt gelegt.
Über den Eingang Erklärung der Anschlussbelegung: BDIRBDIR (bus direction) wird festgelegt, ob ein Lesezugriff oder ein Schreibzugriff auf die internen Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register erfolgen soll. Liegt an Erklärung der Anschlussbelegung: BDIRBDIR ein positives Signal an, werden Daten zum Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG gesandt.
Die beiden Eingänge Erklärung der Anschlussbelegung: BC1 und BC2BC1 und BC2 (bus control) steuern die Verwendung des auf dem Erklärung zu den Anschlüssen: A0 bis A15Adressbus liegenden Datenwortes.
Erklärung der Anschlussbelegung: A8 Der Zeichensatz des Schneider CPC: &A8 = 168A8 = Erklärung zu den Anschluss-Bezeichnungen: CS - Chip SelectChip Select = 1
BC1 BC2 Erklärung der Anschlussbelegung: BDIRBDIR | Die Fließkomma-Routinen: FunktionenFunktion:
---------------------+------------------------------------
0 0 0 | Datenwort wird IGNORIERT
0 0 1 | Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register ADRESSIEREN
0 1 0 | Datenwort wird IGNORIERT
0 1 1 | in adressiertes Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register SCHREIBEN
1 0 0 | Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register ADRESSIEREN
1 0 1 | Datenwort wird IGNORIERT
1 1 0 | aus adressiertem Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register LESEN
1 1 1 | Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register ADRESSIEREN
---------------------+------------------------------------
Wie man sieht, sind viele Die Fließkomma-Routinen: FunktionenFunktionen doppelt vorhanden. Andererseits erzeugen viele Kombinationen keinen Schreib- oder Lesevorgang. Das erklärt sich daraus, dass der Die ICs im Überblick: Der PSG AY-3-8912AY zuerst für die Die ICs im Überblick: Die CPU Z80 Das Innenleben der CPC-Rechner: Die CPU Z80 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80CPU 1610 von General Instruments entworfen wurde, und man deshalb bei der Gestaltung der Speicher und Peripherie: Die Anschlüsse am Schneider CPCAnschlüsse auf deren spezielle Bedürfnisse Rücksicht genommen hat.
Nimmt man die Tabelle noch etwas genauer unter die Lupe, so erkennt man, dass alle Die Fließkomma-Routinen: FunktionenFunktionen mit nur zwei Steuerleitungen ausgewählt werden können, nämlich mit BC1 und Erklärung der Anschlussbelegung: BDIRBDIR, wenn man BC2 auf +5 Volt legt:
BC1 BC2 Erklärung der Anschlussbelegung: BDIRBDIR | Die Fließkomma-Routinen: FunktionenFunktion:
---------------------+------------------------------------
0 1 0 | Datenwort wird IGNORIERT
0 1 1 | in adressiertes Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register SCHREIBEN
1 1 0 | aus adressiertem Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register LESEN
1 1 1 | Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register ADRESSIEREN
---------------------+------------------------------------
Das wird deshalb auch fast immer gemacht. Auch im CPC liegt der Anschluss BC2 direkt auf +5 Volt. Nur BC1 und Erklärung der Anschlussbelegung: BDIRBDIR werden benutzt.
Im CPC ist der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG an Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO angeschlossen: Die Leitungen zum Erklärung zu den Anschlüssen: D0 bis D7Datenbus sind nicht direkt auf den Erklärung zu den Anschlüssen: D0 bis D7Datenbus der Die ICs im Überblick: Die CPU Z80 Das Innenleben der CPC-Rechner: Die CPU Z80 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die CPU Z80CPU gelegt, sondern an Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO. Die Steuerleitungen werden über Kanal C angesprochen: Erklärung der Anschlussbelegung: BDIRBDIR mit Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bit 7 und BC1 mit Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6. Der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG hat deshalb im Schneider CPC keine eigene Portadresse. Um ihn zu programmieren, muss man sich immer an Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO wenden.
Portadresse Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG
-------------------------------------------
&F4 Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A (I/O) <-------> Erklärung zu den Anschlüssen: D0 bis D7Datenbus
-------------------------------------------
&F6 Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C (-/O) Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 --> Erklärung der Anschlussbelegung: BDIRBDIR
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6 --> BC1
-------------------------------------------
Wie bereits erwähnt, lässt sich der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 programmieren. Dazu müssen die Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register im Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG beschrieben werden. Wie man an den Die Fließkomma-Routinen: FunktionenFunktionen der Steuerleitungen erkennt, muss man dazu erst ein Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register adressieren, bevor man es in einem zweiten Schreibzyklus beschreiben kann.
Da sowohl der Erklärung zu den Anschlüssen: D0 bis D7Datenbus als auch die Steuereingänge des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG an Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO angeschlossen sind, ergibt sich, dass es ein recht kompliziertes Unterfangen ist, ein Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG korrekt zu beschreiben oder einen Zeilendraht der Tastaturmatrix einzulesen.
Im Schneider CPC hat man deshalb extra einen Vektor eingerichtet, mit dem man ein Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG einfach programmieren kann: MACHINE PACK: BD34: MC SOUND REGISTERMC SOUND REGISTER. Diese Routine liegt Garbage Collection: ... beim CPC 464beim CPC 464 im unteren Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM ab Adresse &0826:
Befehl Queues als verkettete Liste: Anmerkung:Anmerkung
--------------------------------------
Einsprung mit Operationen: BD5B / 349A / 349A: FLO SUBA = Register-Nummer
und C = zu programmierender Wert
;
DI Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt verbieten
;
1. PSG-Register adressieren
;
LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,#F4 Adresse von Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO
OUT (C),Operationen: BD5B / 349A / 349A: FLO SUBA Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register Operationen: BD5B / 349A / 349A: FLO SUBA (PSG-Reg.-Nr.) in Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO schreiben
LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,#F6 Adresse von Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO. Hier Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 = Erklärung der Anschlussbelegung: BDIRBDIR und Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 6 = BC1
IN Operationen: BD5B / 349A / 349A: FLO SUBA,(C) Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C Zustand lesen
OR #C0 Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bit 6 und 7 setzen -> Erklärung der Anschlussbelegung: BDIRBDIR=1 und BC1=1 -> PSG-Register adressieren
OUT (C),Operationen: BD5B / 349A / 349A: FLO SUBA in Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C beschreiben (Adress-Strobe für den Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG)
(der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG latcht jetzt die Register-Adresse von Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A ein).
AND #3F Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bit 6 und 7 rücksetzen -> Erklärung der Anschlussbelegung: BDIRBDIR=0 und BC1=0 -> inaktiv
OUT (C),Operationen: BD5B / 349A / 349A: FLO SUBA in Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C schreiben
;
2. PSG-Register beschreiben
;
LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,#F4 Adresse von Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO
OUT (C),C Z80-Register C (PSG-Reg.-Wert) in Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO schreiben
LD LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB,#F6 Adresse von Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO -> Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bit 6 und 7 = BC1 und Erklärung der Anschlussbelegung: BDIRBDIR
LD C,Operationen: BD5B / 349A / 349A: FLO SUBA C = alter Wert aus Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C mit Erklärung der Anschlussbelegung: BDIRBDIR und BC1 = 0 (inaktiv)
OR #80 Operationen: BD5B / 349A / 349A: FLO SUBA = Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 7 setzen -> Erklärung der Anschlussbelegung: BDIRBDIR=1 und BC1=0 -> PSG-Register beschreiben
OUT (C),Operationen: BD5B / 349A / 349A: FLO SUBA Operationen: BD5B / 349A / 349A: FLO SUBA nach Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C schreiben (Daten-Strobe für den Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG)
(der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG latcht jetzt den Wert aus Erklärung zu den Anschluss-Bezeichnungen: PA0 bis PA7 - Port A Leitungen 0 bis 7Port A ins angewählte Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register)
OUT (C),C C nach Erklärung zu den Anschluss-Bezeichnungen: PC0 bis PC7 - Port C Leitungen 0 bis 7Port C schreiben -> Erklärung der Anschlussbelegung: BDIRBDIR und BC1 = 0 -> inaktiv
;
EI Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt wieder zulassen
RET Zurück zum rufenden Programm
Was für ein Aufwand für die simple Aufgabe, ein Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register der Sound-Chips zu beschreiben! Selbermachen lohnt sich, außer in Ausnahmefällen, wirklich nicht.
Zum weiteren Verständnis dieser Routine sei noch folgendes angemerkt:
Die Portadresse der Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255PIO ist binär %111101xx????????. Das elfte Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit, die '0', adressiert Die ICs im Überblick: Die PIO 8255 Das Innenleben der CPC-Rechner: Die PIO 8255 Speicher und Peripherie: Die PIO 8255 Die Anschlussbelegungen der wichtigsten ICs im CPC: Die PIO 8255die PIO, die Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bits 8 und 9, das 'xx' wählen, je nach Wert, Port Erklärung der Anschlussbelegung: A, B, CA, B, C oder das Steuerregister an. Das niederwertige Datentypen: Bytes Datenbreite: BytesByte '????????' wird nicht ausgewertet! Beim Befehl OUT_(C),Operationen: BD5B / 349A / 349A: FLO SUBA o.Ä. wird das Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register C auf der unteren Adresshälfte ausgegeben, die aber nicht interessiert! Benutzt wird der 'Nebeneffekt', dass dabei Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB auf der oberen Adresshälfte ausgegeben wird. Obwohl im Befehls-Mnenonic also das C- Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register angegeben ist, wird eigentlich nur mit LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB adressiert.
Insgesamt hat der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG 16 verschiedene Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register, wovon aber eins der implementierte I/O-Port und ein weiteres ein nicht existenter zweiter Port ist. Den zweiten Port gibt es nur in einer anderen Ausführung dieses ICs, dem AY-3-8910.
Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register | Belegung | Die Fließkomma-Routinen: FunktionenFunktion
---------+----------+-------------------------------
0 | xxxxxxxx | LSB der Tonperiodenlänge
1 | ....xxxx | MSB für Kanal Operationen: BD5B / 349A / 349A: FLO SUBA
2 | xxxxxxxx | LSB der Tonperiodenlänge
3 | ....xxxx | MSB für Kanal LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB
4 | xxxxxxxx | LSB der Tonperiodenlänge
5 | ....xxxx | MSB für Kanal C
6 | ...xxxxx | Rauschperiodenlänge
7 | .xxxxxxx | Die Tonausgabe: Das Kontrollregister (Reg. 7)Kontrollregister
8 | ...hxxxx | Lautstärke Kanal Operationen: BD5B / 349A / 349A: FLO SUBA
9 | ...hxxxx | Lautstärke Kanal LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB
10 | ...hxxxx | Lautstärke Kanal C
11 | xxxxxxxx | LSB der Der Sound Manager: PeriodenlängePeriodenlänge des
12 | xxxxxxxx | MSB Hüllkurvengenerators
13 | ....xxxx | Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurvenform
14 | xxxxxxxx | I/O-Port
---------+----------+-------------------------------
Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 0 1 Bedeutung
-----------------------------------------------------
0 ja nein Tonausgabe auf Kanal Operationen: BD5B / 349A / 349A: FLO SUBA
1 ja nein Tonausgabe auf Kanal LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB
2 ja nein Tonausgabe auf Kanal C
3 ja nein Rauschen auf Kanal Operationen: BD5B / 349A / 349A: FLO SUBA zumischen
4 ja nein Rauschen auf Kanal LOW KERNEL JUMPBLOCK: 000B: LOW KL LOW PCHL LOW KERNEL JUMPBLOCK: 001B: LOW KL FAR PCHL LOW KERNEL JUMPBLOCK: 003B: LOW EXT INTERRUPTB zumischen
5 ja nein Rauschen auf Kanal C zumischen
6 in out Richtung des I/O-Ports
-----------------------------------------------------
Der Eingangstakt (CPC: 1MHz) des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG wird in einer ersten Stufe vorab durch 16 geteilt. Danach wird er noch einmal für jeden Kanal durch eine programmierbare Teilerkette auf die gewünschte Der Sound Manager: PeriodenlängePeriodenlänge geteilt und so dem jeweiligen Kanal zugeführt.
Das Teiler-Verhältnis kann dabei in 2^12 = 4096 Stufen eingestellt werden. Da der Erklärung zu den Anschlüssen: D0 bis D7Datenbus nur acht Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit breit ist, musste die Programmierung der Tonperiode auf jeweils zwei Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register pro Kanal verteilt werden. Das erste Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register enthält dabei die unteren acht Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bits, das zweite Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register jeweils die oberen vier Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bits.
Die Frequenz eines Kanals ergibt sich dabei zu:
f(Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt Erklärung der Anschlussbelegung: Takt Erklärung zu den verwendeten Bezeichnungen: Takttakt)
f = ------------
16 * tv
wobei f(Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt Erklärung der Anschlussbelegung: Takt Erklärung zu den verwendeten Bezeichnungen: Takttakt) die Frequenz des Eingangstaktes ist, die durch '16' geteilt wird, und tv das programmierte Teiler-Verhältnis.
Für den internationalen Kammerton Operationen: BD5B / 349A / 349A: FLO SUBA mit 440 Hertz ergibt sich deshalb etwa:
1.000.000 1.000.000
f(Operationen: BD5B / 349A / 349A: FLO SUBA) = 440 = ------------- <=> tv = ------------- = 142,045
16 * tv 16 * 440
Zur Programmierung des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG müssen die Nachkomma-Stellen natürlich weggerundet werden, wodurch sich, vor allem in der obersten Periodenlängen der Noten aus 9 Oktaven: Oktave -4 Periodenlängen der Noten aus 9 Oktaven: Oktave -3 Periodenlängen der Noten aus 9 Oktaven: Oktave -2 Periodenlängen der Noten aus 9 Oktaven: Oktave -1 Periodenlängen der Noten aus 9 Oktaven: Oktave +0 Periodenlängen der Noten aus 9 Oktaven: Oktave +1 Periodenlängen der Noten aus 9 Oktaven: Oktave +2 Periodenlängen der Noten aus 9 Oktaven: Oktave +3 Periodenlängen der Noten aus 9 Oktaven: Oktave +4Oktave, hörbare Disonanzen ergeben können.
Die erreichbare niedrigste Frequenz ist:
1.000.000
f(min) = ------------- = 16,28 Hertz
16 * 4095
Die erreichbare höchste Frequenz liegt bei 62500 Hertz. Sie ist aber nicht so interessant, weil der nächst tiefere Ton bereits eine ganze Periodenlängen der Noten aus 9 Oktaven: Oktave -4 Periodenlängen der Noten aus 9 Oktaven: Oktave -3 Periodenlängen der Noten aus 9 Oktaven: Oktave -2 Periodenlängen der Noten aus 9 Oktaven: Oktave -1 Periodenlängen der Noten aus 9 Oktaven: Oktave +0 Periodenlängen der Noten aus 9 Oktaven: Oktave +1 Periodenlängen der Noten aus 9 Oktaven: Oktave +2 Periodenlängen der Noten aus 9 Oktaven: Oktave +3 Periodenlängen der Noten aus 9 Oktaven: Oktave +4Oktave entfernt liegt. Ein musikalisch verwertbares Raster der Frequenzen ergibt sich erst unter 4000 Hertz.
Eine Die CPU Z80: Besonderheiten der Z80 im Schneider CPCBesonderheit stellt noch die Tonperiodenlänge 0 dar: Bei diesem 'Teiler-Verhältnis' wird kein Rechtecksignal mehr erzeugt, sondern der Ausgang ständig auf dem oberen, dem der Amplitude entsprechenden Ausgangspotential gehalten. Dadurch kann man dann durch Programmierung der Amplitude des Kanals beliebige Signalformen erzeugen. ((ERATA: Teiler 0 == Teiler 1 !!!))
Alle Tonsignale des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG werden durch Teilen des Eingangstaktes und, davon abhängig, Umschalten des Ton-Ausganges zwischen '0' und der eingestellten Amplitude erzeugt. Der Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG erzeugt deshalb ausschließlich Rechteck-Signale. Diese sind, im Vergleich zu den meisten natürlichen Instrumenten, sehr Oberwellen-reich. Deshalb muss man hier an Harmonien sehr viel höhere Anforderungen stellen. 'Gewagte' Dreiklänge, die auf einem Klavier durchaus harmonisch klingen, wirken beim Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 meist äußerst disharmonisch und 'schraeg'.
In der folgenden Tabelle sind die möglichen Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurvenformen des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 dargestellt und die Zahl, mit der Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register 13 dafür jeweils programmiert werden muss, in binärer Form. Bei zwei Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurven gibt es mehrere Zahlen, durch die sie erzeugt werden können.
Alle Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurven lassen sich aber auch nur mit den letzten drei Port B - Input: &F5xx: Bits 1, 2 und 3: Port C - Output: &F6xx: Bit 6 und 7:Bits 0, 1 und 2 erzeugen, wenn man Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 3 immer auf 1 setzt.
!Nummer! Form !
+------+-------------------+
! ! \ !\ !\ !\ !
! 1000 ! \ ! \ ! \ ! \ ...!
! ! \! \! \! !
+------+-------------------+
! ! /! /! /! !
! 1100 ! / ! / ! / ! / ...!
! ! / !/ !/ !/ !
+------+-------------------+
! ! !
! 1001 ! \ !
! 00xx ! \ !
! ! \___________ ...!
+------+-------------------+
! ! ___________ ...!
! 1101 ! / !
! ! / !
! ! / !
+------+-------------------+
! ! \ /\ /\ !
! 1010 ! \ / \ / \ ...!
! ! \/ \/ \ !
+------+-------------------+
! ! /\ /\ !
! 1110 ! / \ / \ / ...!
! ! / \/ \/ !
+------+-------------------+
! ! __________ ...!
! 1011 ! \ ! !
! ! \ ! !
! ! \! !
+------+-------------------+
! ! !
! 1111 ! /! !
! 01xx ! / ! !
! ! / !__________ ...!
+------+-------------------+
Der Verlauf des Amplituden-Anstiegs und -Abfalls wird natürlich auch vom Eingangstakt gesteuert. Hierbei wird ebenfalls der bereits durch 16 geteilte Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt Erklärung der Anschlussbelegung: Takt Erklärung zu den verwendeten Bezeichnungen: TaktTakt verwendet. Dieser wird dann über die 16 Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit breite, programmierbare Teilerkette auf die gewünschte Geschwindigkeit herabgesetzt.
Mit jeder Periode dieses Signals wird dann die Amplitude verändert. Da insgesamt 16 verschiedene Amplituden möglich sind, ist ein einzelner Sägezahn nach 16*16*tv = 256*tv Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: Takt Erklärung der Anschlussbelegung: Takt Erklärung zu den verwendeten Bezeichnungen: TaktTakten abgearbeitet. 'tv' ist hierbei wieder das programmierte Teiler-Verhältnis.
Die kürzeste programmierbare Sägezahn-Periode hat eine Frequenz von:
1.000.000 1.000.000
f(max) = ------------- = ------------- = 3906 Hz
256 * tv 256 * 1
Werden so kurze Sägezahn-Perioden programmiert, dass sie im hörbaren Bereich liegen, so nimmt dies unser Ohr nicht mehr als ein Vibrato, sondern als ein eigenständiges Frequenzsignal wahr. Der abgestrahlte Ton scheint deshalb ein Mischsignal aus der eigentlichen Tonperiodenlänge und der Länge der Sägezahn-Periode zu sein.
Programmiert man die Tonperiode eines Kanals, dessen Amplitude über den Hüllkurven-Generator gesteuert wird, mit dem Wert 0, so wird die Ausgangsspannung dieses Kanals nur noch durch den Amplituden-Verlauf bestimmt. Damit kann man dann (mit gewissen Abstrichen) Sägezahn- uder Dreieck-Signale erzeugen.
Sinnvoll sind aber meist nur Der Sound Manager: PeriodenlängePeriodenlängen, die weit unter der Hörgrenze liegen. Die längste, erzeugbare Der Sound Manager: PeriodenlängePeriodenlänge ist:
1 1.000.000 256 * 65535
------ = f(min) = ------------- <=> p(max) = ------------- = 16.777 Sek.
p(max) 256 * 65535 1.000.000
Beim Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 kann jeder Kanal mit einer konstanten Amplitude (Lautstärke) in 15 Stufen programmiert werden. Programmiert man ein Lautstärkenregister mit dem Wert 0 wird dieser Kanal abgeschaltet.
Dabei ist das Lautstärkenraster logarithmisch angelegt, wodurch beim menschlichen Gehör der Eindruck eines gleichmäßigen Lautstärke-Anstieges entsteht. Wird in einem Lautstärken-Register aber Datenbreite: Bits Port B - Input: &F5xx: Bit 0: Port B - Input: &F5xx: Bit 4: Port B - Input: &F5xx: Bit 5: Port B - Input: &F5xx: Bit 6: Port B - Input: &F5xx: Bit 7: Port C - Output: &F6xx: Bit 4: Port C - Output: &F6xx: Bit 5:Bit 4 gesetzt, das in der Tabelle mit 'h' gekennzeichnet ist, so wird der Hüllkurvengenerator zur Erzeugung der Lautstärke angewählt.
Der Lautstärke-Unterschied zwischen zwei aufeinanderfolgenden Amplituden-Werten beträgt beim Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912AY-3-8912 etwa 2.85 dB. Die folgenden Pegel wurden mit Hilfe eines Kassettenrekorders und dessen Aussteuerungsanzeige ermittelt. Adressierungsarten der Z80: AbsolutAbsolute Genauigkeit sollte deshalb nicht erwartet werden.
Man sieht aber, dass die in Dezibel angegebenen Signalamplituden einen halbwegs konstanten Abstand zueinander haben. Da die Bezeichnung Dezibel eine logarithmische Skalierung in eine lineare übersetzt (Verdoppelung = 10 dB), muss die Amplituden-Abstufung also tatsächlich logarithmisch sein:
Amplitude | Pegel
----------+---------
15 | 5.0
14 | 2.5
13 | 0.0
12 | -3.0
11 | -5.5
10 | -8.5
9 |-13.0
8 |-15.0
7 |-18.0
6 |-21.0
----------+---------
|