Außerdem ist es möglich, den Hüllkurven-Generator des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG selbst zu programmieren. Das kann innerhalb eines ENV-Befehles geschehen. Dazu wird nur das Layout der drei Datentypen: Bytes Datenbreite: BytesBytes eines Abschnittes etwas verändert.
Zunächst einmal: Wird in einem Abschnitt eine PSG-Hüllkurve definiert, so werden die Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register 11, 12 und 13 des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG damit programmiert: Hüllkurven-Form und Länge der Veränderungs-Periode. Danach wird sofort (ohne auch nur eine hundertstel Sekunde zu warten) der nächste Abschnitt der Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Hüllkurve bearbeitet. Dieser sollte deshalb eine Pause sein (Schritthöhe = 0), die so lang definiert werden muss, wie die Der Sound Manager: Hardware-HüllkurvenHardware-Hüllkurve abgearbeitet werden soll. Folgt kein weiterer Abschnitt, so arbeitet Die Abteilungen des Betriebssystems: Der Sound Managerder Sound Manager automatisch die Default-Amplituden-Hüllkurve 0 ab, in der eine Wartezeit von 2 Sekunden definiert ist.
Die Programmierung der Der Sound Manager: Hardware-HüllkurvenHardware-Hüllkurven ist zwar in allen drei CPC-Handbüchern erwähnt. In keinem einzigen steht aber, wie man es machen muss. Und der Syntax ist derartig originell, dass man auch nicht mit Try&Error darauf kommen kann. Ein Hardware-Hüllkurven-Abschnitt muss in Einleitung: BASIC Anhang: BasicBasic mit einem Gleichheits-Zeichen '=' gekennzeichnet werden:
ENV 5, =10,400, 10,0,200
^ ^ ^
| | Pause danach
| |
Nummer Der Sound Manager: PeriodenlängePeriodenlänge
Der Sound Manager: Hardware-HüllkurvenHardware-Hüllkurve
In Maschinensprache wird ein solcher Abschnitt dadurch gekennzeichnet, dass Hardware-Basteleien: Das 8. Bitdas 7. Bit der Schrittzahl gesetzt ist. Für Software-Abschnitte ist ja nur eine Schrittzahl von 0 bis 127 erlaubt, also genau die Werte, bei denen Hardware-Basteleien: Das 8. Bitdas 7. Bit noch nicht gesetzt ist.
Das siebte 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 wird dann ausmaskiert und Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register 13 des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG (Hüllkurven-Nummer) damit beschrieben.
Die folgenden beiden Datentypen: Bytes Datenbreite: BytesBytes (normalerweise Schritthöhe und -länge) werden nicht mehr getrennt betrachtet, sondern zusammen als ein Datenbreite: WordsWord. Dieser Wert wird dann in die Periodenlängen-Register 11 und 12 des Die ICs im Überblick: Der PSG AY-3-8912 Die Anschlussbelegungen der wichtigsten ICs im CPC: Der PSG AY-3-8912PSG geschrieben (natürlich doch wieder getrennt: MSB und LSB des Wortes in je ein Die Tonausgabe: Das Kontrollregister (Reg. 7) Die Tonausgabe: Die möglichen Hüllkurvenformen (Reg. 13)Register).
; Der Sound Manager: Amplituden-Hüllkurve BCBC: SOUND AMPL ENVELOPE: Der Parameterblock der Amplituden-Hüllkurve:Amplituden-Hüllkurve (PSG-kontrolliert)
; ----------------------------------------
;
DEFB #80+HKN ; Hüllkurven-Nummer
DEFW LWP ; Länge der Wiederholungsperiode
|