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 Rasterzeilen- IRQ in 200 Rasterzeilen einzuteilen, denen nun einzeln und unabhängig voneinander Farben zugeordnet
werden können. Um nun die Bildschirmzeichen in den Farben schillern zu
lassen, invertiert das SCS den Zeichensatz Ihre c 64 . Nun kann jedem Zeichen
seine eigene Hintergrundfarbe zugeordnet werden, indem einfach die Zeichenfarbe 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, darunterliegenden Hintergrundrasterzeilen repräsentiert.
So ist es möglich, jeder der 200 Rasterzeilen eine eigene Farbe zuzuordnen, sowie 4 bis zu 40 Rasterzeilen breite
Streifen nach oben und unten zu
scrollen, je 2 nach oben und 2 nach unten, und das gleichzeitig und absolut
soft! Weiterhin bietet das SCS an, dadurch, 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 jeweils 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 Zeichenfarbe ( 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 angegebenen Farbcodes Fn gefüllt.
SYS 50320, K, Z, L scrollt Bildschirmbereiche. 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 gescrollt werden soll," L" stellt die Länge der von " Z" ab zu scrollenden Bildschirmzeilen 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 definiert 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 angegebenen 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 gesetzten Bit und " ." einem ungesetzten.
Beispiel:
SYS 51200, "*.*.*.*.",a ready. Die Dezimalzahl ist print a also 170. 170
SYS 52544, X, Y, A$ druckt die angegebene 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, dadurch werden Eingaben ggf. unsichtbar, und Sie müssen auf eine andere Zeichenfarbe schalten ( CTRL & C=+1 bis 8) .
SYS 49152 schaltet den IRQ ohne Veränderung der vorher eingestellten Parameter wieder ein.
SYS 51312 löscht alle Animationen und
Farben. Zeichen, die gescrollt wurden, bleiben stehen, Raster, die animiert
wurden werden unsichtbar, und der gesamte Rasterbereich wird mit $0 f ( hellgrau) gefüllt. Veränderte Zeichen bleiben jedoch erhalten.
SYS 51328 führt einen kompletten
SCS-RESET durch. Farben und Animationskanä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 besteht, 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 $2 fff
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 selbstverstä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