INT 2F - BMB Compuscience Canada Utilities Interface - INSTALLATION CHECK       
	AH = xx (dynamically assigned based upon a search for a multiplex
		 number which doesn't answer installed)
	AL = 00h installation check
	ES:DI = EBEBh:BEBEh
Return: AL = 00h not installed
	     01h not installed, not OK to install
	     FFh installed; if ES:DI was EBEBh:BEBEh on entry, ES:DI will point
		 to a string of the form 'MMMMPPPPPPPPvNNNN' where MMMM is a
		 short form of the manufacturer's name, PPPPPPPP is a product
		 name and NNNN is the product's version number
                                                                                

INT 2F - Ross Wentworth's Turbo Pascal POPUP LIBRARY                            
	AH = programmer-selected multiplex number
	AL = function
	    00h installation check
		Return: AL = FFh if installed
	    01h get TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. interrupt vectors
		Return: DX:AX -> vector table (see #02587)
	    02h get TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. code segment
		Return: AX = code segment for all interrupt handlers
	    03h call user exit routine and release TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.'s memory
	    04h get signature string
		Return: DX:AX -> counted string containing signature
	    05h get TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.'s INT 2F handler
		Return: DX:AX -> INT 2F handler
	    06h enable/disable TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.
		BL = new state (00h disabled, 01h enabled)
	    07h activate TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. (popup if not disabled)
	    08h get hotkeys
		BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
		Return: AX = hotkey (AH = keyflags, AL = scancode)
	    09h set hotkey
		BL = which hotkey (00h = hotkey 1, 01h = hotkey 2)
		CX = new hotkey (CH = keyflags, CL = scancode)
	    0Ah-1Fh reserved
Index:	installation check;Ross Wentworth POPUP library
Index:	hotkeys;Ross Wentworth POPUP library


Format of POPUP vector table entry:
Offset	Size	Description	(Table 02587)
 00h	BYTE	vector number (00h = end of table)
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	original vector
 05h	WORD	offset of interrupt handler in TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.'s code segment
                                                                                


INT 2F - CiriSOFT Spanish University of Valladolid TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.'s Interface
	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 #02588)
	AH = FFh
Note:	this interface permits advanced communication with TSRs: it is possible
	  to make a generic uninstall utility, advanced TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. relocator programs
	  in order to fit fragmented memory areas, etc.
See also: INT 2D"AMISAlternate Multiplex Interrupt Specification",INT 2F"Compuscience"
Index:	installation check;CiriSOFT TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. interface
Index:	uninstall;CiriSOFT TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. interface


Format of CiriSOFT author_name_ver table:
Offset	Size	Description	(Table 02588)
 -16	WORD	segment of the start of the resident TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. code (CS in programs
		  with PSPsee Program Segment Prefix, XMSsee Extended Memory Specification upper memory segment if installed as UMBsee Upper Memory Block...)
 -14	WORD	offset of the start of the resident TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. code (frequently 100h
		  in *.COM programs and 0 in upper memory TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.'s).
 -12	WORD	memory used by TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. (in paragraphs). Knowing the memory area
		  used by TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. is possible to determine if hooked vectors are
		  still pointing it (and if it is safe to uninstall).
 -10	BYTE	characteristics byte (see #02589)
 -9	BYTE	number of multiplex entry used (redefinition available). Note
		  that the TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. must use THIS variable in it's INT 2Fh handler.
 -8	WORD	offset to vector_area table (see #02590)
 -6	WORD	offset to extra_area table (see #02591,[bit 7]">#02589 [bit 7])
 -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(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. is already resident
		  and it's version code; the ':' char is used as delimiter)


Bitfields for CiriSOFT characteristics byte:
Bit(s)	Description	(Table 02589)
 0-2	type
	000 normal program (with PSPsee Program Segment Prefix)
	001 upper XMSsee Extended Memory Specification memory block (needed HIMEM.SYS function to free memory
	      when uninstalling)
	010 device driver (*.SYS)
	011 device driver in EXE format
	1xx others (reserved)
 3-6	reserved
 7	set if extra_table defined and supported (see #02591)
SeeAlso: #02588


Format of CiriSOFT vector_area table:
Offset	Size	Description	(Table 02590)
 -1	BYTE	number of vectors intercepted by TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.
 00h	BYTE	first vector number
 01h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	first vector pointer before installing the TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.
 05h	BYTE	second vector number
 06h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	second vector pointer before installing the TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.
 0Ah	...	(and so on)
Note:	the TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. must use these variables to invoke the previous interrupt
	  handler routines
SeeAlso: #02588


Format of extra_area table (needed only to improve relocation feature):
Offset	Size	Description	(Table 02591)
 00h	WORD	offset to external_ctrl table (see #02592)
		0000h if not supported
 02h	WORD	reserved for future use (0)
SeeAlso: #02588


Format of CiriSOFT external_ctrl table:
Offset	Size	Description	(Table 02592)
 00h	BYTE	bit 0: TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. is relocatable (no absolute segment references)
 01h	WORD	offset to a variable which can activate/inhibit the TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination.
 ---And if bit 0 in offset 00h is off:
 03h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. pathname for executable file which supports
		  /SR parameter (silent installation & inhibit)
 07h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to first variable to initialize on the copy reloaded
		  from the previous TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. still resident
 0Bh	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	pointer to last variable (all variables packed in one block)