 | La versione della matrice TSR
con recupero di
PSP
è un codice che, con un artificio, riloca verso
l'alto tutti i bytes della parte che deve rimanere residente. |
 | Per questa operazione crea un fattore
di rilocazione con cui dovremo trattare
ogni etichetta relativa a procedure e variabili locali, del TSR. |
 | Esso è calcolato a partire dal valore delle
locazioni tipiche del TSR: anzitutto va sottolineato che una parte del
PSP
deve comunque essere presente anche tra i bytes lasciati in memoria. |
 | Nelle 92
locazioni da 0000H a 005CH
sono memorizzate informazioni vitali per la gestione del programma residente
da parte del Dos, mentre le rimanenti 164 possono tranquillamente essere
recuperate; tenendo conto che i successivi 3 bytes son necessari per
codificare l'istruzione di salto, il numero totale di bytes recuperandi è
di 167. |
 | Per organizzare la rilocazione
nella zona delle costanti troveremo, ora, le seguenti definizioni, tra le
quali i valori PSP (indirizzo della
prima locazione sovrascrivibile), RILOC
(effettivo fattore di rilocazione) e LUNGH
(effettiva nuova lunghezza del programma residente): |