Terminate and Stay Resident
Terminate and Stay Resident, ou TSR, est un appel système sous MS-DOS et certains systèmes semblables, qui permet à un programme de repasser le contrôle au système d'exploitation (MS-DOS n'étant pas multitâche, le programme en cours d'exécution garde normalement le contrôle tant que son exécution n'est pas totalement terminée), tout en restant chargé en mémoire.
Généralement, le programme qui fait cet appel installe dans la table d'interruptions un pointeur vers son adresse, de sorte que l'exécution recommence lorsqu'une interruption d'un certain type se produit. L'utilisation de l'appel TSR peut aussi simplement permettre un démarrage plus rapide du programme lors de sa prochaine exécution, puisque l'exécutable, déjà chargé en mémoire, n'a pas à y être copié depuis le disque[1].
L'appel système se fait en assembleur par l'interruption logicielle 21h, avec la fonction 31h comme paramètre.