TSR-Programme und -Treiber

TSR steht für „terminate and stay resident“. Ein normales Programm wird geladen, abgearbeitet und durch einen Software-Interrupt wieder aus dem Speicher entfernt. Einige Programme bleiben jedoch auch nach ihrer Abarbeitung teilweise im Speicher stehen, um bei Bedarf erneut aufgerufen zu werden. Ein residenter Teil bleibt also im Speicher, während die anderen Teile zunächst gelöscht, bei Bedarf neu nachgeladen und nach Abarbeitung wiederum gelöscht werden. Im nichtresidenten Teil findet sich als erstes eine Sprunganweisung (JMP, Assembler-Befehl für „jump“ = springen), die auf einen Initialisierungsteil ganz am Ende des im Speicher befindlichen Codes zeigt. Nach der Initialisierung springt das Programm – ebenfalls mit einer JMP-Anweisung – an den Anfang des residenten Teils zurück. Dann erst wird das eigentliche Programm abgearbeitet. Die nicht residenten (transienten) Programmteile, nämlich der Beginn und die Initialisierung, werden aus dem Speicher gelöscht, bis das Programm wieder benötigt wird, der Rest verbleibt im Speicher.

Gerätetreiber sind ein Anwendungsbeispiel für TSR-Programme. Beim Einrichten eines Computers sollte man aufgrund der besonderen Verhaltensweise von TSR-Programmen im Speicher grundsätzlich größere TSR-Programme vor kleineren laden, da die Lücken, die ihre transienten Teile hinterlassen, von den kleineren TSR-Programmen ausgefüllt werden können – umgekehrt kann es passieren, daß man einige kleinere TSR-Programme lädt und die größeren danach nicht mehr in den Speicher passen, weil die „Löcher“, die die transienten Teile der kleineren hinterlassen, eben nicht ausreichen, um noch weitere Programme aufzunehmen.

Für jedes I/O-Gerät wird ein Treiber benötigt. Immer benötigt werden die folgenden Treiber für Systemgeräte:

CONConsole = Tastatur + Bildschirm
AUXerste serielle Schnittstelle=COM1
PRNerste parallele Schnittstelle=LPT1
CLOCK$Systemuhr (Timer)
A: - C:Disketten-/Plattentreiber
COM1erste serielle Schnittstelle
LPT1erste parallele Schnittstelle
LPT2zweite parallele Schnittstelle
LPT3dritte parallele Schnittstelle
COM2zweite serielle Schnittstelle
COM3dritte serielle Schnittstelle
COM4vierte serielle Schnittstelle