Magic Disk 64

home to index to text: MD8911-UTILITIES-SCS_SYSTEM_1.0_(ROUTINEN_FUER_BUNTE_BILDSCHIRME).txt
        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

Valid HTML 4.0 Transitional Valid CSS!