★ CODING ★ CRTC ★ MIT DEM BILDRöHRENBAUSTEIN ZAUBERN|Schneider Aktiv) ★![]() |
Mit dem bildröhrenbaustein zaubern |
Kennen Sie den HD6845S CRTC? Noch nicht? Keine Bange - in diesem Artikel werden Sie ihn kennenlernen und somit eine wesentliche Bildungslücke füllen können. CRTC bedeutet „Catho-de Ray Tube Controller “, zu deutsch also „Bildröh-ren-Steuerung ”. HD6845S ist die Typbezeichnung des Bausteins, der in unserem Schneider CPC ebendiese Aufgabe übernimmt. Das Firmware-Handbuch gibt auch Auskunft darüber, wie man diesen Chip direkt ansteuert, und zwar über die Z80-Ein-/Ausgabekanäle. An &BC00 muß die Adresse angelegt werden, über &BC00 versieht man die Adresse des CRTC mit Daten. Das Handbuch hält bei diesen Kanälen nur den Hinweis bereit: „nicht verwenden ”. Da stellt sich doch die Frage, warum eigentlich nicht. Kaputtmachen können Sie nichts, höchstens ein paar neue Möglichkeiten Ihres CPC nutzen. Und dafür lohnt es sich schon, ein bißchen zu experimentieren. EIN EXTREMER FALL, ABER ... Blättern wir weiter im F irmware-Handbuch. Gleich auf der nächsten Seite finden sich die Adressen des CRTC, von denen im Folgenden einige herausgepickt und näher besprochen werden sollen. Beginnen wir gleich mit Adresse 0. Sie enthält die horizontal insgesamt darstellbaren Spalten. Standardwert dafür ist 63. Mit OUT &BC00, OiOUT &BD00, x können Sie eine hübsche Bildstörung fabrizieren: Das Bild läuft horizontal durch bzw. ist total „verschneit ”. Der Wert von x sollte dabei +/- 13 um den Standardwert variieren. Die „hübscheste” Störung erzeugt nach Ansicht des Autors der Wert 50; doch Sie können das ruhig selbst ausprobieren. Die Eingabe des Standardwertes bringt alles wieder in Ordnung. Leider müssen Sie dabei blind tippen, da auf dem Monitor nicht mehr zu erkennen ist. Im äußersten Notfall hilft aber CTRL-SHIFT-ESC. Register 1 des CRTC enthält die horizontal insgesamt dargestellten Spalten. Der Standardwert beträgt hier 40 — übrigens unabhängig vom Bildschirmmodus! OUT &BC00, 1:OUT &BD00,xmit x-Werten unter 40 schränkt den Bereich für die Bildschirmausgabe von rechts her ein. Aber Vorsicht: Der Scroll-Zäh-ler funktioniert dabei nicht mehr richtig, so daß diese Befehlsfolge nicht als Ersatz für WINDOW verwendet werden sollte. Lassen Sie aber in einer Schleife x von 40 bis 0 zurücklaufen, können Sie ein Bild elegant verschwinden lassen.Ebenso ist es möglich, eine Grafik auf den Bildschirm zu schieben: FOR i=1 TO 40:OUT &BC00,1:OUT &BD00,i: FOR j=1 TO 100: NEXT j,iDiese Methode ist wirklich nicht die schlechteste. Doch gleich das nächste CRTC-Register bietet noch mehr.An Adresse 2 liegen nämlich die Daten für die horizontale Synchronisations-Position. Standardwert ist 46. Die Synchro-Position bestimmt, in welcher Spalte die Bildschirmdarstellung beginnt. Damit können Sie die „rechte” Spalte z.B. in die Schirmmitte verschieben. Alles, was dadurch rechts „herausragen” würde, erscheint nun auf der linken Seite. Sie können damit beispielsweise eine Grafik um den Bildschirm „rotieren” lassen: FOR i=1 TO 46:OUT &BC00, 2:OUT &BD00, i:FOR j=1 TO 100:NEXT j,iWenn Ihnen die Richtung nicht gefällt, lassen Sie die i-Schleife eben rückwärts laufen. Oder hin und her. Ganz wie's beliebt.Nochmal zum Thema Bildstörung. Die Anzahl der vertikal darstellbaren Zeilen bietet sich hier geradezu an. Der Standardwert für Adresse 4 ist 38. Wenn Sie ihn durch OUT &BC00, 4:OUT &BD00,xverändern, läuft das Bild nach oben durch. Je kleiner dabei x ist, desto langsamer geht das Ganze. Sie können aber auch durch langsames Erhöhen von x aufs Gas drücken. Der Effekt ist überwältigend.NOTFALLS BLIND TIPPEN Wenn Sie schwarze Balken beim Durchlaufen bevorzugen, verwenden Sie Register 5. Standardwert dafür ist 0. Es enthält die Vertikal-Einstel-iung, was ungefähr dem Bildfang-Knöpfchen an älteren Fernsehgeräten entspricht. Bei Werten zwischen 15 und 255 läuft das Bild mehr oder weniger schnell. Die vertikal dargestellten Zeilen, die in Register 6 normalerweise als 25 gespeichert sind, bieten wieder eine nützlichere Anwendung. Damit können Sie nämlich von unten her Bildschirmzeilen verschwinden lassen. Oder von oben her auftauchen. Beispielsweise können Sie mit OUT &BC00, 6:OUT &BD00,0die Bildschirmausgabe unterdrücken. Gezeichnet wird aber trotzdem! MitOUT &BC00, 6:OUT &BD00,25erscheint Ihre Grafik sofort. Sie können aber das Gemälde auch langsam enthüllen:FOR i=0 TO 25:OUT &BC00, 6:OUT &BD00,i:FOR j=l TO 100: NEXT j,iWenn Sie ein Bild horizontal rotieren lassen können, geht das natürlich auch vertikal. Sie müssen nur . die entsprechende Synchro-Position verwenden, die sich als 30 in Register 7 des CRTC befindet. Beim Durchlaufen in einer Schleife von 0 bis 03 wackelt das Ding aber ziemlich.Register 8 enthält eine 0 für Interlace und Skew. Was das ist, wissen Fernsehtechniker; der Autor dieses. Artikels muß zugeben, keine blasse Ahnung zu haben. Trotzdem: Wenn Sie statt der 0 eine 5 ins Register schreiben, erzielen Sie ein leichtes ÜBERWÄLTIGENDER EFFEKT Vibrieren des Bildes. Das kann, von einem Explosionsgeräusch untermalt, in einem Ballerspielchen durchaus nützlich sein, um z.B. den Aufschlag einer Bombe darzustellen. Vergessen Sie aber nicht, das Wackeln nach der Explosion wieder abzustellen! Die Register 9 bis 15 sind für den Anwender ziemlich uninteressant. Aber lassen Sie sich nicht davon abhalten, mit den hier vorgestellten CRTC-Adressen zu experimentieren. Die Vielzahl der Alwin Ertl , Schneider Aktiv
|