★ APPLICATIONS ★ DIVERS ★ MODE-Wechsel für Grafiken für 464 ★![]() |
| Rsx - Mode - Wechsel für Grafiken (CPC Amstrad International) | Applications Divers |
Nehmen wir einmal an, Sie haben ein Programm geschrieben. das mehrere Bildschirmaufbauten verwenden soll. Dazu haben Sie einige Bilder mit einem Grafikprogramm (z.B. CPC-CAP aus Heft 12/85) erstellt und möchten diese nun in Ihre Programme einbauen. Dies ist kein Problem, solange Sic in demselben Bildschirmmodus arbeiten, in dem auch die Bilder gezeichnet wurden. Was aber, wenn z.B. die Bilder in MODE 0 hergestellt wurden, im Programm aber in MODE 1 gebraucht werden? Bekanntlich wird beim MODE- Befehl auch der Bildschirm gelöscht, da die alten Bildschirmbytes im neuen MODE sehr merkwürdig aussähen. Mit der hier vorgestellten Basicerweiterung ist jedoch ein echter MODE-Wechsel möglich. Bei jedem MODE-Kommando wird der Bildschirm nicht mehr gelöscht, sondern Byte für Byte entsprechend dem neuen Bildschirmmodus umgerechnet. Das Rücksetzen des Bildschirmoffsets erfolgt über das normale CLS-Kommando. Durch die Unterschiede in Auflösung und Farbpalette der einzelnen MODEs ist der Bildschirm nach einem MODE-Wechsel dennoch etwas verändert. Beim Wechseln des MODEs, werden die Farben der verschmelzenden Punkte miteinander oderiert und ergeben so die Farbe des neuen Punktes. Beim Wechsel in einen Modus mit höherer Auflösung bleiben die Bildpunkte erhalten. Die Farben werden jedoch entsprechend dem MOD- Befehl geändert; so geht zum Beispiel die Farbe 14 aus MODE 0 in die Farbe 2 aus MODE 1 über, da 2= 14 MOD 4 ist. (In MODE 1 sind vier verschiedene Farben möglich). Durch diese (technisch bedingte) Eigenheit der Farbbehandlung ist es manchmal nötig, vor oder nach dem MODE-Wechsel die Farben im Bildschirmspeicher zu ändern. Dazu dient der neue Befehl |INKSWAP,FARBSTIFT,FARBSTIFT. Er bewirkt, daß alle Bildpunkte mit dem 1. Farbstift gegen solche mit dem 2. Farbstift ausgetauscht werden. Bitte beachten Sie den Unterschied zum INK- Befehl. INK SWAP erzielt eine Vertauschung des Farbstiftes, während INK nur neue Farbwerte zuordnet. MODE und INK SWAP beziehen sich immer auf Bildschirmbank ab &C000, auch wenn eine andere eingestellt ist. Dadurch ist es z.B. möglich, eine Grafik direkt zu bearbeiten, wenn man diese in den Bereich ab &C000 legt und die Bildschirmausgaben auf &4000 verbiegt. Da diese Befehle recht allgemein gehalten sind, können sie außer zur Grafikverarbeitung auch zu anderen Zwecken verwendet werden, z.B. um verschiedene Schrifttypen miteinander zu mischen oder um vor einer Hardcopy die Bildschirmfarben anzupassen usw. CPCAI
|