TSR steht für "terminate and stay restistant". 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 nichtresidenten (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, dass 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:
CON | Console = Tastatur + Bildschirm |
AUX | erste serielle Schnittstelle=COM1 |
PRN | erste parallele Schnittstelle=LPT1 |
CLOCK$ | Systemuhr (Timer) |
A: - C: | Disketten-/Plattentreiber |
COM1 | erste serielle Schnittstelle |
LPT1 | erste parallele Schnittstelle |
LPT2 | zweite parallele Schnittstelle |
LPT3 | dritte parallele Schnittstelle |
COM2 | zweite serielle Schnittstelle |
COM3 | dritte serielle Schnittstelle |
COM4 | vierte serielle Schnittstelle |