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