Der MOS 6567/6569 Videocontroller (VIC-II) und seine Anwendung im Commodore 64 |
|||||
Inhalt 3. Funktionsweise des VIC 3.14. Effekte/Anwendungen |
|||||
|
|||||
Die Manipulation von YSCROLL bietet noch mehr Möglichkeiten, auf Bad Lines Einfluß zu nehmen. Man kann auch eine Bad Line vor ihrer korrekten Beendigung abbrechen, indem man durch Änderung an YSCROLL den Bad-Line-Zustand innerhalb einer angefangenen Bad Line vor Zyklus 14 wieder wegnimmt. Das hat mehrere Konsequenzen:
Mit diesem Verfahren hat man also die Darstellung einer Textzeile auf deren letzte Rasterzeile reduziert, denn weil VCBASE um 40 erhöht wird, geht der VIC anschließend zur nächsten Zeile über. Daher wird dieser Effekt als "Linecrunch" bezeichnet: Man kann damit einzelne Textzeilen "wegcrunchen". Wenn man nun in jeder Rasterzeile so vorgeht, so steht der RC immer auf 7 und es finden keine c-Zugriffe statt, aber VCBASE wird in jeder Zeile um 40 erhöht. Dies führt irgendwann dazu, daß VCBASE die 1000-Byte-Grenze der Videomatrix überschreitet und der VIC auch die letzten, normalerweise unsichtbaren 24 Byte der Matrix darstellt (in denen u.a. die Spritedatenzeiger abgelegt sind) und bei Erreichen von 1024 wieder bei Null anfängt. Dadurch, daß man ganze Textzeilen auf je eine Rasterzeile crunchen kann, hat man eine Möglichkeit, den Bildschirminhalt schnell um große Distanzen nach oben zu scrollen, ohne den Grafikspeicher zu ändern, ähnlich wie man ihn mit FLD nach unten scrollen kann. Der einzige störende Nebeneffekt dabei ist, daß sich die weggecrunchten Zeilen am oberen Bildschirmrand ansammeln, was unschön aussieht. Hier kann man aber durch Anwendung eines der ungültigen Grafikmodi recht praktisch im Bereich dieser Zeilen auf schwarz schalten. |
|||||
![]() ![]() |