[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Int 2F - Cirisoft Spanish University Of Valladolid Tsr's Interface [t]
AH = xx (dynamically assigned based upon a search for a multiplex
number from C0h to FFh which doesn't answer installed)
AL = 00h installation check
ES:DI = 1492h:1992h
Return: AL = 00h not installed
01h not installed, not OK to install
FFh installed; and if ES:DI was 1492h:1992h on entry, ES:DI will
point to author_name_ver table (see below)
AH = FFh
Note: this interface permits advanced communication with TSRs: it is possible
to make a generic uninstall utility, advanced TSR relocator programs
in order to fit fragmented memory areas, etc.
See also: INT 2D"AMIS",INT 2F"Compuscience"
Index: installation check;CiriSOFT TSR interface
Index: uninstall;CiriSOFT TSR interface
Format of author_name_ver table:
Offset Size Description
-16 WORD segment of the start of the resident TSR code (CS in programs
with PSP, XMS upper memory segment if installed as UMB...)
-14 WORD offset of the start of the resident TSR code (frequently 100h
in *.COM programs and 0 in upper memory TSR's).
-12 WORD memory used by TSR (in paragraphs). Knowing the memory area
used by TSR is possible to determine if hooked vectors are
still pointing it (and if it is safe to uninstall).
-10 BYTE characteristics byte
bits 0-2: 000 normal program (with PSP)
001 upper XMS memory block (needed HIMEM.SYS function
to free memory when uninstalling)
010 device driver (*.SYS)
011 device driver in EXE format
1xx others (reserved)
bits 3-6 reserved
bit 7 set if extra_table defined and supported
-9 BYTE number of multiplex entry used (redefinition available). Note
that the TSR must use THIS variable in it's INT 2Fh handler.
-8 WORD offset to vector_area table (see below)
-6 WORD offset to extra_area table (see bit 7 in offset -10 and below)
-4 4 BYTEs signature string "*##*"
00h var "AUTHOR:PROGRAM_NAME:VERSION",0 (variable length, this area
is used in order to determine if the TSR is already resident
and it's version code; the ':' char is used as delimiter)
Format of vector_area table:
Offset Size Description
-1 BYTE number of vectors intercepted by TSR
00h BYTE first vector number
01h DWORD first vector pointer before installing the TSR
05h BYTE second vector number
06h DWORD second vector pointer before installing the TSR
0Ah ... (and so on)
Note: the TSR must use these variables to invoke the previous interrupt
handler routines
Format of extra_area table (needed only to improve relocation feature):
Offset Size Description
00h WORD offset to external_ctrl table (0 if not supported)
02h WORD reserved for future use (0)
Format of external_ctrl table:
Offset Size Description
00h BYTE bit 0: TSR is relocatable (no absolute segment references)
01h WORD offset to a variable which can activate/inhibit the TSR
---And if bit 0 in offset 00h is off:
03h DWORD pointer to ASCIZ pathname for executable file which supports
/SR parameter (silent installation & inhibit)
07h DWORD pointer to first variable to initialize on the copy reloaded
from the previous TSR still resident
0Bh DWORD pointer to last variable (all variables packed in one block)
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson