Cum se creează programe fără PSP

Delphi. Program și interfață. Cererea dumneavoastră

Modul de a crea programe TSR fără PSP

Acest articol descrie modul de construire a programelor rezidențiale - TSR (Terminate and Stay Resident), care permite utilizarea zonei PSP (Prefixul segmentului de programe) pentru a găzdui codul rezident al programului.







Ceva despre funcțiile nedocumentate ale DOS.
Pentru a înțelege mecanismul de dezvoltare a TSR fără PSP, trebuie să vă familiarizați cu unele funcții DOS nedocumentate și cu formatele PSP și MCB - Memory Control Block.

PSP - prefixul segmentului de program.

PSP este întotdeauna construit de DOS atunci când porniți orice program și imediat precede începutul programului. Luați în considerare formatul PSP.

Comanda INT 20h, care este folosită pentru a termina programul

apel lung la managerul de funcții DOS. Conține comanda pentru o tranziție lungă la managerul de funcții DOS. Folosit în programe orientate spre CP / M. Offset în echipa de salt lung






conține numărul de octeți disponibili în segmentul de cod al programului.

copie a vectorului de întrerupere 22h, prin care este transmis controlul
finalizarea programului.

o copie a vectorului de întrerupere 23h, prin care se transmite controlul când se apasă CONTROL-BREAK sau CONTROL-C.

Dimensiunea blocului este de 16 octeți.

Funcții DOS nedocumentate.
Luați în considerare acum funcțiile DOS nedocumentate care sunt folosite pentru a construi TSR fără PSP.

setați PSP-ul curent.

Această funcție spune DOS-ul ca PSP-ul specificat să fie folosit ca cel curent.

creați un PSP subordonat.

Această funcție necesită DOS pentru a crea un PSP subordonat. Spre deosebire de funcția 26h, datele nu sunt copiate din actualul PSP, dar sunt reconstruite.

Luați în considerare secvența de acțiuni de la sfârșitul programului.

Această metodă a fost testată în diferite medii de operare compatibile:

- MS / PC DOS 3,30;
- MS / PC DOS 4;
- MS DOS 5 beta release;
- DR DOS 3,41;
- DR DOS 5;
- utilizând încărcătorul LOADHI din sistemul QEMM 5.0;
- folosind încărcătura din memoria mai veche a lui HILOAD DR DOS 5.

Exemplu de program rezident fără PSP.
Pentru a înțelege mai bine ordinea finalizării programului rezident fără PSP, vom da un exemplu.







Articole similare

Trimiteți-le prietenilor: