APPLICATIONSDIVERS ★ UNI-RSX (CPC AMSTRAD INTERNATIONAL) ★

UNI-RSX (CPC Amstrad International)Applications Divers
★ 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 ★ 

Byte für Byte ein Sprite

UNI-RSX hilft Sprites erzeugen

Mit diesem tollen Programm wird es möglich, Sprites in einer schnellen Abfolge auf dem Bildschirm erscheinen zu lassen. Des weiteren ist es möglich, die definierten Grafiken vor und hinter dem Hintergrund bewegen zu lassen. Eine Utility, welche in keiner Sammlung fehlen sollte.

Grundsätzliches: Bei allen Befehlen, die einen Wert zurückgeben, ist der 'Klammeraffe' mit anzugeben. Es werden nur Integerwerte verarbeitet. Parameter in eckigen Klammern können mit angegeben werden. Wie bei RSX-Befehlen üblich, beginnen diese mit dem Zeichen unter der Tastenkombination 'SHIFT & Klammeraffe' (senkrechter Strich).

Die allgemeinen Befehle, Funktionen und Beispiele

1.) |DPOKE,adresse,wert%: Dieser Befehl 'poked'in zwei hintereinanderfolgenden Speicheradressen einen 16 Bit- (oder Zwei-Byte-) Wert, hier ein Beispiel: |DPOKE, &C000,1234

Nach der Ausführung befindet sich der Wert 210 in Speicheradresse &C000, der Wert 4 in &C001. Kurzes Nachrechnen: 4 (Inhalt &C001) * 256 (da Highbyte) + 210 (Lowbyte) = 4*256+210= 1234. Stimmt!

2.) |DPEEK,adresse,@wert%: Das Gegenteil von | DPOKE. Hier wird der Inhalt der beiden nacheinander stehenden Adressen ab 'adresse' in die Variable 'wert%' geschrieben. Diese Variable muß vorher definiert werden. Auch hierzu ein Beispiel: Wir wollen unseren Wert wieder aus dem Adressenpaar &C000/ &C001 auslesen, deshalb geben wir ein:

wert%=0:|DPEEK, &C000, @wert%: PRINT wert%

Nach Betätigen der RETURN- oder ENTER-Taste sehen wir unsere Zahl 1234 wieder auf dem Bildschirm. Kurze Erklärung zur Zeile: wert% =0 definiert unsere benötigte Integervariable, |DPEEK,&C000,@wert% liest die Adressen &C000+1 (also &C001), und &C000 aus, berechnet den Wert nach obiger Formel und übergibt das Ergebnis der Variablen 'wert%

3.) |FILLB,startadresse,anzahl,byte (0-255): Füllt einen Speicherbereich mit dem Inhalt der Variablen "Byte". Beispiel: |FILLB,&C000,&4000,255, der Bildspeicher wird mit dem Wert 255 gefüllt.

4.) |COPYB,startadresse,zieladresse,anzahl: Kopiert einen Speicherbereich von der Anfangsadresse 'startadresse' zur neuen Adresse 'zieladresse'. Dazu auch ein Beispiel: |COPYB,&C000,&4000,&4000

kopiert den Standardbildspeicher (&C000) an die Adresse &4000, mit einer Länge von &4000 Bytes. Die Adressen dürfen sich NICHT überschneiden.

5.) |PAGE,@oder| PAGE,1: Schaltet zwischen zwei Bildspeichern hin und her. Page 0 liegt an der Adresse &C000 (Standard), und Page 1 liegt an der Adresse &4000.

6.) |WAIT[,ascii]: Geben Sie den Befehl ohne Parameter ein, wartet der CPC auf einen beliebigen Tastendruck, wogegen der Befehl mit Parameter (0-255) auf ein ASCII-Zeichen von der Tastatur wartet. Beispiel: | WAIT, 16 wartet, bis die Taste 'CLR' gedrückt wird.

Sprite-Befehle

Grundsätzliches: Die Sprite-Befehle benötigen mindestens zwei Parameter. Das Grafik-Koordinatensystem bleibt in allen Modi gleich, das heißt, in X- Richtung 0 bis 640 Pixel und in Y- Richtung 0 bis 400 Pixel. Die X- Koordinate muß in MODE 0 durch 2, in MODE 1 durch 4, und in MODE 2 durch 8 dividierbar sein. Ein in MODE 1 erstelltes Sprite läßt sich NICHT einwandfrei in den anderen Modi darstellen, gleiches gilt für die anderen Modi.

7.) | SET,x%,y%

Dieser Befehl setzt ein definiertes Sprite in den Bildspeicher. Sind die Koordinaten größer als die Grafik-Fenstergrenzen, so erscheint das Sprite an der gegenüberliegenden Seite. Dazu das Beispiel: |SET,320,200

setzt ein Sprite in die Bildschirmmitte.

8.) |GET,x%,y%[,@breite%,@höhe%,@adresse%]

Liest ein definiertes Rechteck vom Bildschirm, und legt die Daten ab "adresse%" ab. Werden fünf Parameter angegeben, so werden diese mit dem Befehl | DEF...., eingestellten Wert zurückgeliefert.

9.) |DEF,modus,breite,höhe,adresse

Definiert ein Sprite. Mit dem ersten Parameter kann die Verknüpfung mit den Bildschirmdaten gewählt werden, wobei folgende Parameterwerte eingestellt werden können:

0 = FORCE
1 = XOR
2 = AND
3 = OR

Andere Werte ergeben eine Fehlermeldung. Der zweite Parameter gibt die Breite in Bytes an. Die Anzahl der Pixel ist vom Modus abhängig. So beträgt die Anzahl der Pixel bei einer Breite von 1 in Mode 2 acht Pixel, in Mode 1 vier Pixel und in Mode 0 zwei Pixel. Beim dritten Parameter wird die Höhe in Pixel angegeben. Die tatsächliche Anzahl beträgt immer die Hälfte des eingestellten Wertes. Und der letzte Parameter schließlich gibt die Variable 'adresse' (die Speicherstelle) an, ab der die Daten gelesen (mit SET) beziehungsweise geschrieben (GET) werden. Die Anzahl der Daten errechnet sich aus der Formel: breite*höhe. Beispiel: MODE1 :MOVE 1,16,1

(Beim CPC 464 muß der letzte Wert (,1) weggelassen werden)

PRINT CHR$(5)"X";:|GET,1,16

Kurze Erklärung zu den Programmzeilen: Zuerst wird der Bildschirm auf Mode 1 gesetzt. Der Grafikcursor an die Position x:l, y: 16 bringen und den Buchstaben 'X' auf dem Bildschirm ausgeben. Der Inhalt des Rechteckes unten/links

wird ab Adresse 'adresse' abgelegt, und kann mit dem Befehl SET wieder auf den Bildschirm gebracht werden.

Noch zwei Erklärungen zu Punkt 7 und 8:

Zu 7.) Wird der SET-Befehl verwendet, so geschieht folgendes: Zuerst wird die alte Bildschirmadresse geholt, diese steht in den Adressen &A22D und &A22C, und der ab Adresse &A231 gespeicherte Hintergrund wird ausgegeben. Dann wird die neue Bildschirmadresse für den nächsten Aufrufgespeichert. Jetzt wird an dieser Adresse der Hintergrund eingelesen und ab Adresse &A231 abgelegt, dann ein Byte aus der Spritedatenadresse geholt, mit dem eingestellten Modus verknüpft und endlich ins Bild gebracht. Das Ganze geht solange, bis die maximale Breite und Höhe erreicht ist.

Zu 8.) Die Voreinstellungen betragen in der Breite vier Pixel, in der Höhe sechzehn Pixel. Und "adresse" steht auf &9000. Das reicht für zirka 255 Sprites. Den gewählten Speicherbereich für die Sprites sollte man mit MEMORY adresse-1 gegen Überschreiben schützen.

cd, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1989
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL 1989
★ AUTHOR: Heiko Petersen
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» UNI-RSX    (CPC  Amstrad  International)DATE: 2013-01-02
DL: 273
TYPE: ZIP
SiZE: 6Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Applications » Hometext
» Applications » Hypertext (CPC Amstrad International)
» Applications » Locoscript 2
» Applications » Deutsch.com (Happy Computer)
» Applications » CPC 464 Firmjump (Compute Mit)
» Applications » Discology v6
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 590 millisecondes et consultée 1593 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.