Während die bisher beschriebenen Aufgaben der Assembler-Schnittstelle zufallen, gehört die Sicherung des Bildschirmkontextes zur Aufgabe des Hochsprachen-Programms, das das eigentliche TSR-Programm darstellt. Zum Bildschirmkontext zählen der aktuelle Videomodus, die Cursor-Position und der Bildschirminhalt. Darüber hinaus müssen bei Grafikkarten auch die Inhalte der Farbauswahl-Register und anderer Register der Video-Karte gesichert werden, sofern hier Veränderungen vorgenommen werden.
Der aktuelle Viedeomodus kann leicht mit Hilfe der Funktion 00h des BIOS-Video-Interrupts 16h abgefragt werden. Stellt sich dabei heraus, daß sich der Bildschirm im Textmodus befindet (diese Modi tragen die Nummern 0, 1, 2, 3 und 7), muß lediglich die erste Textseite aus dem Video-RAM durch das TSR-Programm gesichert werden. Hierzu kann es sich ebenfalls des Video-BIOS bedienen oder direkt auf das Video-RAM zugreifen. Ergibt die Abfrage des Videomodus hingegen, daß ein Grafikmodus aktiv ist, wird die Sicherung des Videomodus schon aufgrund der Tatsache sehr kompliziert, daß das Video-RAM bei EGA- und VGA-Karten in bestimmten Videomodi eine Größe von bis zu 256 KByte erreichen kann. Hat das TSR-Programm dann ein transientes Programm bei seiner Arbeit unterbrochen, dürfte es kaum möglich sein, einen Puffer von derartiger Größe zu allokieren.
Aus diesem Grund verzichten viele TSR-Programme auf ihre Aktivierung innerhalb eines Grafikmodus und lassen sich nur innerhalb der verschiedenen Textmodi starten. Da unter DOS meistens im Textmodus gearbeitet wird, läßt sich mit diesem Makel in der Regel gut leben. Eine Ausnahme bilden hier jedoch die grafischen Benutzeroberflächen, allen voran Windows, die ausschließlich im Grafikmodus arbeiten. Da Windows jedoch eigene Mechanismen zur parallelen Ausführung von Programmen bzw. zur Einbindung von Taschenrechnern, Notizbüchern etc. anbietet, ist der Einsatz von TSR-Programmen hier ohnehin wenig sinnvoll.
|