von Frederik Holst Dieses Mal will ich auf den Hauptvorteil der Poke-Sounds eingehen: Die einfache Konvertierbarkeit in Maschinensprache. Da Maschinensprache nicht viel anders ist, als Werte in Adressen zu poken, fällt das Umwandeln auch nicht schwer, wir haben es ja schließlich mit nichts anderem als mit POKES zu tun. Als erstes möchte ich ein Listing zeigen, das eine ganz einfache Tonfolge ausgibt, es sieht so aus: ORG $A800 LDA #VBI:LO STA $224 LDA #VBI:HI STA $225 LDA #192 STA $D40E LDA #0 STA MERK RTS VBI LDA MERK CMP #10 BNE CONT LDA #0 STA MERK CONT LDX MERK LDA TAB,X STA $D200 LDA #175 STA $D201 INC MERK JMP $E462 TAB DFB 100,110,120,130,140 DFB 150,160,170,180,190 Nun die Erklärung des Listings: Am Anfang wird der VBI eingerichtet. Ein VBI ist ein Programm, das im Hintergrund läuft, man kann also weiter tippen, eine Figur steuern usw. Außerdem wird unsere Zählvariable MERK auf null gesetzt. Damit ist das Hauptprogramm beendet. Alle 1/50 Sekunde wird nun der VBI aufgerufen. Dort wird zuerst abgefragt, ob MERK schon den Wert 10 erreicht hat. Wenn dies der Fall ist, wird es auf null gesetzt, ansonsten geht es bei CONT weiter. Nun wird der Wert von MERK in das X-Register übertragen und der Wert, der an TAB+X steht gelesen. Das Ergebnis wird dann in $D200 geschrieben, es ist also die Frequenz für Tonkanal 0. Die 175 setzt sich aus dem Wert 15 für die Lautstärke und dem Wert 10 (keine Verzerrung) * 16 = 160 zusammen und bleibt konstant. (Anmerkung für ML-Programmierer: Einige werden sich sicher gefragt haben, warum ich so umständlich mit MERK programmiert habe und nicht einfach den X-Wert erhöht habe. Das ist schon richtig, aber da mein XL einen leichten Defekt hat, setzt er den X-Wert bei einem INX immer auf 255, gleiches gilt für das Y-Register, doch setzt er das auf null, was weiß ich warum. Deswegen bin ich lieber auf Nummer Sicher gegangen.) Wenn man sich das Programm anhört, ist das ganze natürlich viel zu schnell. Man muß also vor der Erhöhung des MERK Wertes eine Pause einlegen (mittels einer Abfrage des Y-Registers). Doch ich will das Listing nicht noch mehr Verkomplizieren, deswegen überlasse ich das Euch ! Viel Spaß beim Experimentieren !