Building the TINE library from the source modules included here will require copying the specific 'project.def' 
file found in the appropriate 'Platform' subdirectory into the same area as the source modules.  For Windows
builds the .dsp/.dsw (Visual Studio 6) or kernel.sln/kernel.vcxproj (Visual Studio 2012) project files provided 
can also be copied to the location of the source files, although the project.def and project files should be 
considered as 'guidelines'.

Earlier remarks concerning Release 3.0 -> 4.0:

In TINE Release 4.0 there has been considerable refactoring of internal variable and function names as well 
as module and header file names.  For example, servdef.h is now called srvcore.h, rpcdefs.h is now called 
tinedefs.h, etc.  By and large, the single header file "tine.h" is the only header file you'll need to include.

The variable 'NGdebug' is now 'tineDebug'.  Although there is a macro #definition to point NGdebug to tineDebug,
you should change any code module which might use this variable to the modern form.  This variable is however
seldem used in use code modules.

You should pay attention to the make file used to make the tine libraries for your platform. Some modules have
been renamed.

Most API calls can be used as before.  In a few circumstances, there have been breaks with the previous API.
These include the following routines:

int GetCallerInfo(NAME16 *un,BYTE *ipx,UINT32 *ip,short *prot,int *num);
char *GetCaller(void);

now take the equipment module local name as an argument:

int GetCallerInfo(char *eqm,NAME16 *un,BYTE *ipx,UINT32 *ip,short *prot,int *num)
char *GetCaller(char *eqm);


The following routine has been deprecated:

void SetRPCCompletion(char *errstr);


Use instead:

void SetEqmCompletion(char *eqm, char *errstr)


If you use a property query function, the legacy variant is no longer supported, the API call now takes
a function pointer with a prototype which uses a PrpQueryStruct type instead of a PropertyQueryStruct
type:

short RegisterPropertyQueryFunction(char *eqm,int (*fcn)(char *devName,PrpQueryStruct **prpqs),int numprops)


Finally, the following routines take an array of NAME64 elements as an argument instead of NAME16:

int AssignPropertyList(char *eqm,char *devname,char *listname,int listsize,NAME64 *list);
int GetRegisteredPropertyList(char *eqm,NAME64 *prpNames,int *nprps);


This is due to the longer names now supported in TINE Release 4.0



