Hogyan készítsünk tsr programokat psp nélkül?

Delphi. Program és interfész. Az alkalmazásod

A TSR programok létrehozásának módja a PSP nélkül

Ez a cikk leírja egy eljárást TSR - TSR (megszüntetése és a Stay Resident), amely lehetővé teszi, hogy használja a PSP terület (Program Segment Prefix) elhelyezésére a rezidens kódot.

Valami a DOS nem dokumentált funkcióiról.
TSR kidolgozásának megértéséhez egy olyan mechanizmus nélkül PSP ismernie kell néhány dokumentált DOS funkciók és PSP formátumok és MCB - Memory Control Block.

PSP - program szegmens előtag.

A PSP-t mindig a DOS építi, amikor elindít egy programot, és közvetlenül megelőzi a program kezdetét. Tekintsük a PSP formátumot.

Az INT 20h parancs, amely a program befejezésére szolgál

hosszú hívás a DOS funkció menedzserhez. Tartalmazza a parancsot a DOS függvénykezelő hosszú átmenetére. CP / M-re orientált programokban használatos. Offset a long jump csapatnál
tartalmazza a programkód szegmensben elérhető bájtok számát.

a 22h megszakítási vektor másolata, amellyel a vezérlést továbbítják
a program befejezése.

a 23h megszakítási vektor egy példányát, amelyen keresztül a CONTROL-BREAK vagy a CONTROL-C gomb megnyomásakor a vezérlés továbbításra kerül.

A blokk mérete 16 bájt.

Nem dokumentált DOS funkciók.
Vegye figyelembe az olyan dokumentálatlan DOS-funkciókat, amelyek TSR nélkül készültek PSP nélkül.

állítsa be az aktuális PSP-t.

Ez a funkció azt mondja a DOS-nak, hogy a megadott PSP-t kell használni a jelenlegi PSP-ként.

hozzon létre egy alárendelt PSP-t.

Ez a funkció DOS-ot igényel, hogy hozzon létre egy alárendelt PSP-t. A 26h funkciótól eltérően az adatok nem kerülnek átmásolásra az aktuális PSP-ről, de átépülnek.

Tekintsük a program végén található műveletek sorrendjét.

Ezt a módszert különböző kompatibilis működési környezetekben tesztelték:

- MS / PC DOS 3.30;
- MS / PC DOS 4;
- MS DOS 5 bétaverzió;
- DR DOS 3,41;
- DR DOS 5;
- a LOADHI betöltő használatával a QEMM 5.0 rendszerből;
- a terhelés használatával a HILOAD DR DOS 5 korábbi memóriájában.

Példa egy rezidens programra a PSP nélkül.
Annak érdekében, hogy jobban megértsük a rezidens program befejezésének sorrendjét a PSP nélkül, adunk egy példát.

Kapcsolódó cikkek