Magic Disk 64

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



Valid HTML 4.0 Transitional Valid CSS!