Grafikkurs: "Picasso und all die an- dern..." (Teil 5)
Grüetzi mitrnand ( um an die DB anzulehnen) und herzlich willkommen zum fünften
Teil unseres Grafikkurses. Nachdem wir
die letzten Monate ja schon die Sprites
und den Grafikbildschirm abgehandelt
haben, werden wir uns nun dem dritten
und letzen Teil der Grafikprogrammierung
unseres 64 ers widmen, der Zeichensatzprogrammierung.
Vielleicht werden Sie jetzt fragen:
" Wieso Zeichensatzprogrammierung? Mit
den schrägen Zeichen auf der Tastatur
läßt sich doch eh nicht viel anfangen.
Das kommt doch alles viel zu klotzig und
plump!" . Na da haben Sie sich aber geschnitten. Ich möchte mich hier ja auch
nicht über die Blockgrafik durch die
Sonderzeichen des C64 auslassen, sondern
vielmehr darüber, wie man diese in eine
ansehbare Form bringt. Man kann nämlich
die Zeichen, die Sie sonst so auf dem Bildschirm rumfliegen auch beliebig
verändern. Sie könnten zum Beispiel ganz
" buchstäblich" aus einem " X" ein " U" machen! Die Veränderung des Zeichensatzes ist sogar derart flexibel, daß man
unter Umständen ganze HIRESund Multicolorgrafikbildschirme in einem Zeichensatz unterbringen kann, um so eine Grafik zu " simulieren" . Das hat manchmal so
seine Vorteile. Beispielsweise der, daß
ein Zeichensatz mit weniger Rechenaufwand animiert werden kann, als eine Grafikseite. Als Beispiel ist hier vorzüglich der große " MAGIC DISK 64"- Schriftzug in der Intro einer jeden MD
geeignet. Das hochund runterwackeln
dieses Grafikobjektes ist als Grafikbildschirm nur schwer, wenn überhaupt
gar nicht, so flüssig und schnell wie
hier zu realisieren.40 Zeichen umkopieren geht halt schneller, als 320 Datenbytes ( soviele Bytes sind nämlich in
40 Zeichen untergebracht) .
Doch bevor ich Sie jetzt möglicherweise
mit Dingen verwirre, von denen Sie noch
nichts verstehen, möchte ich dieses Thema etwas weiter nach Hinten verschieben.
Zunächst einmal zu den " elementaren" Grundlagen der Zeichensatzprogrammierung. Zunächst einmal wollen wir die
Frage klären, wo die Zeichen auf dem
Bildschirm eigentlich herkommen. Letzten
Monat hatte ich ja schon einmal vom
Bildschirmspeicher gesprochen. Wir hatten damals geklärt, daß dieser Speicherbereich von Adresse 1024 bis 2023 zuständig dafür ist, welches Zeichen wo
auf dem Bildschirm zu stehen hat. Hierbei gab es für jedes der 256 Zeichen des
64 ers einen bestimmten Wert, der repräsentativ für ein Zeichen war. Dies war
der sogenannte Bildschirmcode. Der Code
1 zum Beispiel stand für das " A" . Ich
hatte damals auch gesagt, daß der VIC
bei der Zeichendarstellung jede Adresse
des Bildschirmspeichers untersucht, welcher Code darin steht und dann das ent- sprechende Zeichen in ein Monitoroder
Fernsehsignal umwandelt, damit wir es
auch auf dem Bildschirm sehen können.
Doch woher soll er wissen wie denn nun
das " A", oder die Buchstaben die Sie
gerade lesen eigentlich aussehen sollen;
daß ein " W" so aussieht wie ein umgedrehtes " M" und so weiter. Nun diese
Informationen müssen natürlich wie alles, was mit Grafik zu tun hat irgendwo
in unserem 64 er als Zeichendaten gespeichert sein, und genau das ist auch der
Fall. Doch wo im Speicher befinden sich
denn nun die Zeichensatzdaten? Nun diese
Frage ist nicht einfach zu erklären.
Hierzu muß ich wieder einmal etwas weiter ausholen und Ihnen den genauen Speicheraufbau des 64 ers erklären. Ich hatte
ja schon einmal im Basickurs darüber
gesprochen, wobei ich jedoch lediglich
erwähnte, daß es insgesamt 65536 Speicherzellen innerhalb des C64 gibt, die
alle mit einer entsprechenden Adresse
angesprochen werden können. In Wirklich- keit gibt es aber weitaus mehr ( nämlich
so um die 90000 !), nur sind diese nicht
immer für den Prozessor, das Herzstück
unserer Maschine," zu sehen" . Die verschiedenen Bereiche werden vielmehr in
das " Sichtfeld" des Prozessors " eingespiegelt", wenn sie benötigt werden. Man
könnte sich den Speicher des 64 er auch
als ein Hochhaus mit mehreren Stockwerken vorstellen. Will der Prozessor ganz
bestimmte Daten, so muß er in ein bestimmtes Stockwerk gehen und sie sich
dort abholen. Zur besseren Erläuterung
hierzu einmal eine Grafik:
Bitte laden Sie den 2 . Teil des Kurses.