/******************************************** WOP1616.h Watcom basic OPerations for 16:16 format *********************************************/ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You must do : #define TDE_GLOBALS in one (and only one) .c file of your Module. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* To avoid unnecessary includes : */ #ifndef __TDE_WOP1616_H #define __TDE_WOP1616_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* For DLLs who are using this module : */ #undef CPA_EXPORT #if defined(CPA_WANTS_IMPORT) #define CPA_EXPORT __declspec(dllimport) #elif defined(CPA_WANTS_EXPORT) #define CPA_EXPORT __declspec(dllexport) #else #define CPA_EXPORT #endif /* For Global declaration in C files : */ #ifndef TDE_GLOBALS #define __TDE_EXTERN extern #else /* !TDE_GLOBALS */ #define __TDE_EXTERN #endif /* !TDE_GLOBALS */ /* ----------------------------------------------------------------------------- INCLUDES FILES : Include here any other header files of your module you need ! Ex : #include "toto.h" Note : Do Not include header files from other Modules (do this in C files only) ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- CONSTANT DECLARATION: Ex : #define TDE_C_LMAX 100 ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- TYPES DEFINITION : Declare here any type you need, and constant you need to do this : Ex : typedef struct TDE_tdstToto_ { long aLMAX_lBuffer[TDE_C_LMAX]; ... } TDE_tdst_Toto ; ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- GLOBAL VARIABLE DECLARATION : Ex : __TDE_EXTERN #ifdef TDE_GLOBALS = #endif ; ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- FUNCTIONS DECLARATION: ----------------------------------------------------------------------------- */ long TDE_MUL (long A,long B); #pragma aux TDE_MUL = \ "imul ebx" \ "shrd eax,edx,16" \ parm [eax] [ebx] \ value [eax] \ modify [edx]; long TDE_DIV (long A,long B); #pragma aux TDE_DIV = \ "xor eax,eax" \ "shrd eax,edx,16" \ "sar edx,16" \ "idiv ebx" \ parm [edx] [ebx] \ value [eax]; #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /* __TDE_WOP1616_H */