APPLICATIONSDIVERS ★ Farbe mal drei ★

RSX Multicol (CPC Magazin)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 ★ 

Mit dem folgenden Programm wird Ihr Monitor erst richtig bunt. Je nach Modus mit bis zu 27 Farben.

Das Programm ermöglicht es, mit dem CPC 464 die dreifache Anzahl an Farben gleichzeitig darzustellen, also je nach Bildschirmmodus 6,12 oder 27 Farben. Dazu wird der Bildschirm in drei Zonen unterteilt, für die jeweils unabhängig der komplette Farbensatz festgelegt werden kann, ebenso die Rahmenfarbe (s. Bild). "Multicol" stellt hierzu fünf zusätzliche RSX-Befehle zur Verfügung:

|COLOR.ON

Dieser Befehl schaltet den Mehrfarbmodus ein. Die zuletzt mit den neuen |INK- und |BORDER-Kommandos eingestellten Farben erscheinen.

|COLOR.OFF

Wenn der Mehrfarbmodus zu bunt wird, so kann man mit diesem Befehl wieder in den normalen Farbmodus zurückkehren.

|INK, < Farbstiftnr. >, < Bildschirmzone >, < Farbe 1 >[, < Farbe2 >] (0-15) (0-2) (0-26)

Für die gewählte Bildschirmzone wird die Farbe 1 und - wenn angegeben - die Farbe 2 (blinkend) für die gewünschte Farbstiftnr. eingestellt. Wurden zu viele oder zu wenig Parameter bzw. eine Zahl außerhalb des zulässigen Wertebereichs angegeben, erscheint eine Fehlermeldung.

|BORDER, < Bildschirmzone >, < Farbe 1 >[, ] (0-2) (0-26)

Die Rahmenfarbe der angegebenen Bildschirmzone wird eingestellt.

|SPEED.INK, < Blinkdauer Farbe 1 >[, < Blinkdauer Farbe 2 >] (0-255) (0-255)

Dieser Befehl stellt die Blinkfrequenz für den Mehrfarbmodus ein. Wird nur ein Wert angegeben, wird beiden Farben die gleiche Blinkdauer zugeteilt.

Tippen Sie nun Listing 1 ab und speichern Sie es unter dem Namen MULTICOL.LDR ab; dann starten Sie mit RUN. Das Programm erzeugt jetzt eine Datei MULTICOL.RSX, die den Maschinencode der RSX-Befehle enthält. Sollten Fehler in den DATA-Zeilen auftreten, setzen Sie den Rechner zurück, laden das Programm erneut und verbessern die fehlerhafte Zeile. Sobald Sie eine korrekte Datei MULTICOL.RSX erhalten haben, tippen Sie Listing 2 ab und speichern es mit SAVE”MULTICOL.GO”. Mit diesem Programm können Sie die RSX-Befehle dann jederzeit initialisieren.

Die Unterteilung des Bildschirms in Zonen wird durch Benutzung des Interrupts erreicht, der jede 1/300 sec ausgelöst wird. Rein rechnerisch ergeben sich dadurch 300/ 50. also 6 Farbzonen. Hier kam es jedoch zu einem unan-
genehmen Flimmern, so daß wir uns auf drei Zonen beschränken mußten.

Die Routine sollte auch noch möglichst exakt zu jeder 1/300 sec ausgeführt werden, da sonst keine klare Obergangszone entstand (1 n$ entspr. 16 Bildpunkten). Auch wenn das unvermeidliche leichte Flackern (hervorgerufen durch unterschiedliche Befehlslängen bei der Unterbrechung) weitestgehend auf den unsichtbaren Teil des Bildschirms geschoben wurde, konnten wir nicht die vom Betriebssystem zur Verfügung gestellten Routinen zur Interrupt-Behandlung nutzen, sondern mußten uns möglichst an der Quelle einhängen. Die bei jedem Interrupt angesprungene Adresse 0038h war nicht als Vektor zu verwenden, da sie auch im ROM angesprochen werden konnte, so daß wir den von dort aus erfolgenden Sprung auf die RAM-Adresse 0B939h anzapften und die dort stehende Routine soweit wie nötig in unser eigenes Programm kopierten. Damit konnte dann ordnungsgemäß die normale Interrupt-Behandlung durchgeführt werden.

Die Farbeinstellung im Takt von 50 Hertz mußte ebenfalls verhindert werden, da sonst die alten Farben ab und zu noch auf leuchteten. Dies erreichten wir durch Einschreiben eines Wertes in den Adreßvektor des für das Setzen der Farben zuständigen Interrupt-Blocks, so daß dieser nun auf einen RET-Befehl (0C9h) zeigte. Da dieser Vektor jedoch bei jedem MODE-Befehl zurückgesetzt wird, mußte auch der MODE-Befehl in der Weise umgeleitet werden, daß nach jeder Ausführung eines MODE-Befehles der Vektor erneut "entschärft” wird.

Die Daten für die 16*3*2=96 Bildschirm- und die 2*3=6 Rahmenfarben sind in einer Tabelle von Adresse 0A101h bis 0A166h in nachstehender Reihenfolge abgelegt:

Zone 0: INK 0, INK 1.....INK 15, BORDER (1. Farbe)
INK 0, INK 1.....INK 15, BORDER (2. Farbe)
Zone 1: INK 0, INK 1.....INK 15, BORDER (1. Farbe)
INK 0, INK 1.....INK 15, BORDER (2. Farbe)
Zone 2: INK 0, INK 1,..., INK 15, BORDER (1. Farbe)
INK 0, INK 1,..., INK 15, BORDER (2. Farbe)

Jörg Seidler + Co, CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEARE: 1986 , 1987
★ CONFIG: 64K + AMSDOS
★ LANGAGE: ???
★ LiCENCE: LISTING
★ COLLECTION: CPC Magazin 1987
★ AUTHORS: Holger Jaeschke & Joerg Seidler

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-MULTICOLDATE: 2013-01-10
DL: 140 fois
TYPE: ZIP
SIZE: 5Ko
NOTE: 40 Cyls
.HFE: NON

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

Lien(s):
» Applications » RSX - Batch
» Applications » Screencopy (CPC Amstrad International)
» Applications » Rsx - Info (Popular Computing Weekly)
» Applications » Push/Pop
» Applications » Rsx - Zoom (CPC Amstrad International)
» Applications » Multi Format Utility
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 128 millisecondes et consultée 1189 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.