APPLICATIONSCREATION MUSICAL ★ Dem Computer zuhören ★

RSX Sound (Schneider Magazin)Applications Creation Musical
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Hören Sie Ihrem Computer doch einmal beim Arbeiten zu! Die folgende RSX-Erweiterung SOUND gibt Ihnen die Möglichkeit dazu. Sie untersucht ständig eine von Ihnen gewählte Speicherstelle und erzeugt einen Ton, dessen Höhe von deren Inhalt abhängt. Besonders amüsant ist es, wenn die Speicherstelle ihren Wert häufig ändert. All dies geschieht im Hintergrund, während ein beliebiges anderes Programm abläuft. SOUND wurde auf dem CPC 464 entwickelt, funktioniert aber auch auf den anderen CPCs. Die RSX-Erweiterung enthält zwei Befehle:

|SOUND.ON ,adresse

Er schaltet den "Gesang” ein. Die angegebene Adresse wird 50mal je Sekunde abgefragt. Je nach Wert wird (bis zum nächsten Abfragetermin) ein Ton von 15625 Hz (bei 0) bis herunter zu 61,3 Hz (bei 255) erzeugt. Sie können die Adresse auch weglassen. In diesem Fall wird der vorherige |SOUND.ON-Befehl fortgesetzt, auch wenn Sie ihn mit |SOUND.OFF unterbrochen haben.

|SOUND.OFF

Dieser Befehl stellt, wie wohl leicht zu erraten, die Wirkung von |SOUND.ON ab.

Das System wird durch einen |SOUND.ON-Befehl um etwa 4.5% verlangsamt.

SOUND dient jedoch nicht nur der Unterhaltung. Sie können damit auch gezielt überwachen, ob eine bestimmte Speicherstelle von Ihrem Programm verändert wird oder nicht. Dies erleichtert speziell den Test von Maschinencodeprogrammen. Da SOUND ständig auf den Tonchip zugreift, werden normale SOUND-Befehle allerdings nur verstümmelt ausgeführt.

Bei der Untersuchung der Speicherstelle wird grundsätzlich das RAM gewählt, da SOUND im ROM wenig Sinn hätte. (Ein ROM-Speicherplatz kann seinen Wert ja nicht ändern; es entstünde also ein Ton konstanter Höhe.) Auf Speichererweiterungen wird keine Rücksicht genommen; SOUND liest immer aus der gerade selektierten RAM-Bank.

Eintipphilfe

Geben Sie zunächst das Basic-Programm (Listing 1) ein und speichern Sie es ab. Anschließend ist mit RUN zu starten. Der Maschinencode wird unterhalb von HIMEM angelegt und HIMEM entsprechend geändert (Zeile 20). Die absoluten Adressen erfahren ihre Anpassung in Zeile 100. In Zeile 120 erfolgt die Initialisierung der RSX. Diese 9 Byte werden nun nicht mehr benötigt, daher der zweite MEMORY-Befehl. Der Speicherbedarf von SOUND beträgt somit 116 — 9 = 107 Byte. Zeile 10 ermöglicht nachfolgende SYMBOL-AFTER-Befehle. Zeile 140 verhindert eine mehrfache Initialisierung.

Sie können den Code an beliebigen Stellen (zwischen &4000 und &BFFF) unterbringen, wenn Sie die Zeilen 10,20 und 120 entsprechend ändern. Allerdings muß der Bereich auch frei sein!

Für Assembler-Programmierer

SOUND arbeitet mit einem Bildrücklaufereignis. Die entsprechende Routine liest die Speicherstelle, multipliziert den Wert mit 8, um eine brauchbare Tonperiode zu erhalten, und beauftragt den Soundchip, einen entsprechenden Ton zu erzeugen.

|SOUND.ON schreibt die übergebene Adresse (wenn vorhanden) direkt in den Lesebefehl der erwähnten Routine und trägt das Ereignis in die sogenannte Bildaufbauliste ein. Von nun an wird die Ereignisroutine vom Betriebssystem 50mal je Sekunde aufgerufen. |SOUND.OFF löscht das Ereignis aus der Bildaufbauliste und setzt den Soundchip still.

Interessante Adressen

Folgende Adressen für den CPC 464 haben sich als recht reizvoll erwiesen:

B187 bis B18A enthält die Systemuhr. B187 ist dabei das niedrigstwertige Byte.

Ab AE36 findet sich der Basic-Programmzähler. Hier können Sie einem entsprechenden Programm zuhören. Überhaupt liegen in dieser Gegend viele System-variablen von Basic.

Von B173 bis B186 sind auch sehr interessante Töne zu hören.

Den Bereich ab ca. B500 belegt die Tastaturverwaltung. B53F enthält z.B. einen Zähler, der bei jedem Tastendruck (bei jedem erfolgreichen Aufruf von KM Read Char) erniedrigt wird.

Georg Beran, Schneider Magazin

★ PUBLISHER: Schneider Magazin
★ YEAR: 1988
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ TAG: /CODE-SOURCE
★ LICENCE: LISTING
★ AUTHOR: Georg Beran

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» RSX-Sound    (Schneider  Magazin)    GERMANDATE: 2020-06-13
DL: 23 fois
TYPE: ZIP
SIZE: 4Ko
NOTE: 40 Cyls
.HFE: NON

» RSX-Sound    (Schneider  Magazin)    LISTING    GERMANDATE: 2020-06-08
DL: 21 fois
TYPE: PDF
SIZE: 114Ko
NOTE: 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Soundex (The Amstrad User)
» Applications » Soundtrak Ripper (SoundHakker)
» Applications » Sound Envelope Definer
» Applications » Musiquabasic
» Applications » RSX : Sound (CPC Magazin)
» Applications » Printer Pack - Sound Effects

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 234 millisecondes et consultée 174 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.