SUPER COLOUR SYSTEM V1.0 ------------------------
Seien Sie ehrlich: Finden Sie den Bildschirm des c 64 nicht auch ziemlich öde? Wenn Sie zu der Gruppe Anwendern gehören, die es bunt mögen, sind Sie mit dem SCS gut beraten. Es stellt Ihnen viele nützliche Routinen zur Vefügung, mit denen Sie der öden Einfarbigkeit der Textausgabe ein Ende bereiten. Der Trick besteht darin, den Bildschirmhintergrund mittels Raster- zeilen-IRQ in 200 Rasterzeilen einzu- teilen, denen nun einzeln und unab- hängig voneinander Farben zugeordnet werden können. Um nun die Bildschirm- zeichen in den Farben schillern zu lassen, invertiert das SCS den Zeichen- satz Ihre c 64. Nun kann jedem Zeichen seine eigene Hintergrundfarbe zugeord- net werden, indem einfach die Zeichen- farbe gewechselt wird. Einen Abstrich muß man allerdings machen: Die Zeichen selbst lassen sich nicht mehr nach Farben trennen, ein Rasterstrich geht immer vom linken Rand des Bildschirms bis zum rechten. So sind Textausgaben wie z.B. print"<white>A<red>B<cyan>c" nicht mehr möglich. Beim SCS wäre das Ergebnis eine Unterlegung der Buchstaben ABC mit bunten Zeichenhintergründen; die Zeichenfarbe jedes Buchstabens wird durch die Werte der acht, darunter- liegenden Hintergrundrasterzeilen re- präsentiert. So ist es möglich, jeder der 200 Raster- zeilen eine eigene Farbe zuzuordnen, so- wie 4 bis zu 40 Rasterzeilen breite Streifen nach oben und unten zu scrollen, je 2 nach oben und 2 nach un- ten, und das gleichzeitig und absolut soft! Weiterhin bietet das SCS an, da- durch, daß der Zeichensatz invertiert und somit ins RAM kopiert werden muß, Zeichen im Groß/Klein und Groß/Grafik- Modus beliebig zu verändern. Bis zu 4 Zeichen können synchron nach oben oder unten gescrollt werden, ebenfalls je- weils 2 nach oben und unten. Die Befehle im einzelnen: FARBBEFEHLE: SYS 50176, R, H, Z setzt die Farben. Dabei ist "R" die Rahmenfarbe, "H" die Hintergrundfarbe und "Z" die Zeichen- farbe (Der Befehl füllt nun alle 200 Rasterzeilen des Hintergrunds mit dem angegebenen Farbcode. Einzelne Farben für die Rasterzeilen werden mit dem nun folgenden Befehl möglich. SYS 50240, Z, F1, F2, ..., F8 definiert die Farben. "Z" gibt die zu belegende Bildschirmzeile an (0-24). Die acht Rasterzeilen werden mit den acht ange- gebenen Farbcodes Fn gefüllt. SYS 50320, K, Z, L scrollt Bildschirm- bereiche. Das SCS stellt vier getrennte Kanäle (K, 0-3) zur Verfügung. 0 und 1 scrollen nach oben, 2 und 3 nach unten. "Z" ist die Anfangszeile (0-24) die ge- scrollt werden soll, "L" stellt die Län- ge der von "Z" ab zu scrollenden Bild- schirmzeilen dar. Dabei gilt: L => 1 und Z + L < 25 (im Klartext: L muß größer oder gleich 1 sein, und Z und L dürfen addiert den Wert 25 nicht übersteigen!). Bis zu 5 aufeinanderfolgende Bildschirmzeilen können in einem Kanal gescrollt werden. SYS 50816, K stoppt den Scroll in Kanal "K". Danach kann der Kanal zum Scrollen eines anderen benutzt werden.
ZEICHENSATZBEFEHLE:
SYS 51008, ZS, Z, B1, B2, ..., B8 de- finiert ein eigenes Zeichen. Dabei stellt "ZS" den Zeichensatz des zu än- dernden Zeichens dar (0: Groß/Grafik; 1: Groß/Klein), "Z" ist der Bildschirm- (Video)Code des Zeichens, und B1 bis B8 sind die 8 Zeilen der Zeichenmatrix in dezimalen Integerzahlen.
MATRIX: BYTE-WERT: ........ 0 Dies ist ein Bei- ...**... 24 spiel für ein selb- ***..*** 231 stentworfenes Zei- ***..*** 231 chen. Die BYTE- ..****.. 60 WERTE müssen als ******** 255 B1 ... B8 eingege- ******** 255 ben werden! ........ 0
SYS 51712, K, ZS, Z scrollt ein Zeichen. "ZS" ist wie beim Definitionsbefehl der Zeichensatz, "Z" ist der Bildschirmcode des zu animierenden Zeichens. "K" stellt, ähnlich des Farbscroll-Befehls, einen von 4 Kanälen dar (0-3): 0 und 1 scrollen nach oben, 2 und 3 nach unten. SYS 51392, K stoppt den Charscroll in Kanal "K". Allerdings tritt selten der Fall ein, daß das Zeichen, das gescrollt wurde, nach dem Stoppen dasselbe aussehen hat, wie vor dem 51712-Befehl. Kurz gesagt: Nur wenn vor dem Stoppen vom IRQ aus die Scrollroutine im ange- gebenen Kanal so oft angesprungen wurde, daß sich ein vielfaches von 8 ergibt, ist das Zeichen nun wieder so, als wäre nichts geschehen. Wollen Sie sicher gehen, so benutzen Sie den nächsten Befehl! SYS 51984, K. Er stoppt den Scroll in Kanal "K" und regeneriert anschließend das Zeichen, das gescrollt wurde. Es hat danach die gleiche Form wie vor dem Start des Scrolls. Zum Zwischenspeichern der Zeichenmatrix benutzt das SCS den SPeicher von $cbe0 bis $cbff, der mitten im Programmcode liegt. HILFSBEFEHLE: SYS 51200, Zeichenmatrix 8 Bit, A Dieser Befehl rechnet die angegebene Binärmatrix in eine Dezimalzahl um, und legt sie in der Variable "A" ab. Im Binärstring entspricht "*" einem ge- setzten Bit und "." einem ungesetzten. Beispiel:
SYS 51200, "*.*.*.*.",a ready. Die Dezimalzahl ist print a also 170. 170
SYS 52544, X, Y, A$ druckt die angege- bene Variable (es kann sich auch um einen in Hochkommata eingeklammerten alphanumerischen String handeln) ab der Position Spalte X, Zeile Y aus. Ist X=0, so wird der String zentriert ausgegeben. Achtung: Da X auch 0 annehmen kann, muß entgegen allen anderen SCS-Befehlen X im Bereich von 1 bis 25, also eine Zahl höher als gewohnt angegeben werden. So entspricht X=1 der 1. Spalte, Y=0 jedoch der 1. Zeile. SYSTEMBEFEHLE SYS 51136 regenriert den Zeichensatz. Beide Zeichensätze werden dem ROM im Bereich von $d000-$e000 entnommen, invertiert und im RAM abgelegt. Durch den Umstand, daß zum Auslesen der ROM-Werte der IRQ ausgeschaltet werden muß blinkt der Bildschirm kurz auf. Eventuell eingestellte Rasterfarben werden für einen winzigen Augenblick unsichtbar. SYS 49216 schaltet den IRQ aus, z.B. für zeitkritische Berechnungen. Der reverse Zeichensatz bleibt eingeschalten, da- durch werden Eingaben ggf. unsichtbar, und Sie müssen auf eine andere Zeichen- farbe schalten (CTRL & C= + 1 bis 8). SYS 49152 schaltet den IRQ ohne Verän- derung der vorher eingestellten Para- meter wieder ein. SYS 51312 löscht alle Animationen und Farben. Zeichen, die gescrollt wurden, bleiben stehen, Raster, die animiert wurden werden unsichtbar, und der ge- samte Rasterbereich wird mit $0f (hell- grau) gefüllt. Veränderte Zeichen blei- ben jedoch erhalten. SYS 51328 führt einen kompletten SCS-RESET durch. Farben und Animations- kanäle werden initialisiert, der Zeichensatz wird ähnlich SYS 51136 ins RAM kopiert, und das Einschaltbild des SCS erscheint. Programme im Speicher bleiben aber erhalten. SYS 49280 führt einen RESET aus, eine Abschiedsmeldung erscheint, es wird auf einen Tastendruck gewartet, und das ge- wohnte Einschaltbild des c 64 erwartet Sie. Das Programm selbst belegt, wie aus den SYS-Befehlen ersichtlich, den Bereich von $c000-$d000 (49152-53248). Das SCS kopiert den reversierten Zeichensatz in den Bereich von $3000-$4000 (12288-16384), wodurch die Gefahr be- steht, von einem Basic-Programm bzw. Variablen gelöscht zu werden. Dem kann jedoch abgeholfen werden: a) können Sie den für BASIC vefügbaren Speicher mit POKE 56,48: CLR auf $2fff heruntersetzen, dann stehen für Basic Programme aber nur noch 6 KByte zur Verfügung.
b) können Sie den BASIC-ANFANG, der sonst auf $0801 steht, mittels POKE 43,1 POKE 44,64: POKE 16384,0: NEW auf $4001 hochgestetzt werden, so daß dann für Basic-Programme immerhin runde 24 KByte
bereit stehen. Die Zeichensätze lassen sich selbstver- ständlich auch abspeichern: GROß/GRAFIK:
SYS 57812 "NAME",8: POKE 193,0: POKE 194,48: POKE 174,0: POKE 175,56: SYS 62957
GROß/KLEIN:
SYS 57812 "NAME",8: POKE 193,0: POKE 194,56: POKE 174,0: POKE 175,64: SYS 62957
BEIDE ZUSAMMEN:
SYS 57812 "NAME",8: POKE 193,0: POKE 194,48: POKE 174,0: POKE 175,64: SYS 62957
Betriebssystemserweiterungen und Module sollten beim Betrieb des SCS abgeschaltet oder entfernt werden, da sie die Funktion des Programms stören bzw. verhindern.
Oliver Menne/cf