Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
10 KiB

#include "hwr_sys.h"
#include "const.h"
#include "def.h"
/************************** Global variables **************************/
ROM_DATA _SHORT sqrtab[LENTH_S] = {0,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,
4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,
6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
11,11,11,11,11,11,11 } ;
ROM_DATA _ULONG bit[32] = { 0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x100,0x200,
0x400,0x800,0x1000,0x2000,0x4000,0x8000,0x10000L,
0x20000L,0x40000L,0x80000L,0x100000L,0x200000L,0x400000L,
0x800000L,0x1000000L,0x2000000L,0x4000000L,0x8000000L,
0x10000000L,0x20000000L,0x40000000L,0x80000000L };
ROM_DATA _SHORT quad[LENTH_Q]={
0, 1, 4, 9, 16, 25, 36, 49,
64, 81, 100, 121, 144, 169, 196, 225,
256, 289, 324, 361, 400, 441, 484, 529,
576, 625, 676, 729, 784, 841, 900, 961,
1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521,
1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209,
2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025,
3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969
} ;
ROM_DATA _SHORT eps0[LENTH_E]={
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 3, 5, 8, 11, 15, 20,
25, 30, 36, 42, 48, 55, 62, 69,
77, 85, 92, 101, 109, 117, 126, 135,
135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135
} ;
ROM_DATA _SHORT eps1[LENTH_E]={
0, 0, 0, 0, 0, 0, 9, 30,
54, 78, 100, 118, 134, 146, 157, 165,
172, 177, 181, 184, 187, 189, 190, 192,
193, 193, 194, 194, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195
} ;
ROM_DATA _SHORT eps2[LENTH_E] = {
0, 1, 9, 26, 44, 59, 71, 80,
87, 92, 95, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98,
98, 98, 98, 98, 98, 98, 98, 98
} ;
ROM_DATA _SHORT eps3[LENTH_E]={
9, 27, 46, 61, 74, 84, 91, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96
} ;
#if HWR_SYSTEM==HWR_DOS /* || HWR_SYSTEM==HWR_WINDOWS */
SPECL speclGlobal[SPECVAL]={0} ; /* Event describing structures array */
#endif
ROM_DATA _SHORT nbcut0 = 10 ; /* Utmost radius of intersection */
/* search */
ROM_DATA _SHORT nbcut1 = 95 ; /* A square of utmost radius of */
/* intersection search */
ROM_DATA _SHORT nbcut2 = 2 ;
/******************* Low level constants *****************************/
ROM_DATA CONSTS const1 =
{
(_SHORT)HORDA , /* Normalization chord */
(_SHORT)DLT0 , /* */
(_SHORT)NSR , /* */
(_SHORT)J_STEP , /* Initial steps of search for */
(_SHORT)I_STEP , /* intersectons */
(_SHORT)EPS_Y , /* Vicinity of pointing out extremums*/
(_SHORT)EPS_X, /* and preliminary search for */
/* shelves */
(_SHORT)EPS_PY , /* Maximum horizontal and vertical */
(_SHORT)EPS_PX , /* size of "points" . */
(_SHORT)EPS_ST , /* Maximum length of a stroke. */
/* (_SHORT)EPSA_ST , */ /* Maximum slope of a stroke. */
/* (_SHORT)EPSR_ST , */ /* Stroke maximum integral curvature */
/* (_SHORT)EPSX_SH , */ /* Minimum horizontal shelves */
/* */ /* size . */
/* (_SHORT)EPSY_SH , */ /* Half maximum vertical shelf */
/* */ /* size */
/* (_SHORT)EPSL_SH , */ /* Maximum height of shelves gluing */
/* (_SHORT)EPS_SM , */ /* Vicinity of ending extremums */
/* marks */
(_SHORT)A0 , /* */
(_SHORT)B0 , /* */
(_SHORT)LF0 , /* */
(_SHORT)LZ0 , /* */
(_SHORT)A1 , /* */
(_SHORT)B1 , /* */
(_SHORT)LF1 , /* */
(_SHORT)LZ1 , /* */
(_SHORT)A2 , /* */
(_SHORT)B2 , /* */
(_SHORT)LF2 , /* */
(_SHORT)LZ2 , /* */
(_SHORT)A3 , /* */
(_SHORT)B3 , /* */
(_SHORT)LF3 , /* */
(_SHORT)LZ3 /* */
/* (_SHORT)EPS_F */
} ;
#if PG_DEBUG || (defined(FORMULA) && !DEMO)
/****************** Interface variables ******************************/
_SHORT PG_line_s = 1; /* line mumber in DBG window */
_SHORT mpr; /* print mask */
_CHAR *code_name[] = /* codes */
{"_NO_CODE", /* are described */
"_ZZ_", "_UU_", "_IU_", "_GU_", /* here */
" _O_", "_GD_", "_ID_", "_UD_", /* */
"_UUL_","_UUR_","_UDL_","_UDR_",/* */
"_XT_", "_ANl", "_DF_ ", "_ST_",/* */
"_ANr","_ZZZ_","_Z_","_FF_", /* */
"_DUR_","_CUR_","_CUL_","_DUL_",/* */
"_DDR_","_CDR_","_CDL_","_DDL_",/* */
"_GUs_","_GDs_","_Gl_","_Gr_", /* */
"_UUC_","_UDC_", /* */
"_TS_", "_TZ_", "_BR_", "_BL",
"_BSS", "_AN_UR", "_AN_UL",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED",
"NO NAME DEFINED"
}; /* */
_CHAR *dist_name[] = /* heights and directions */
{" ", "US1_", "US2_", "UE1_", "UE2_", "UI1_", "UI2_",
"MD_", "DI1_", "DI2_", "DE1_", "DE2_", "DS1_", "DS2_",
" ", " ",
"f_ ","fUS1_","fUS2_","fUE1_","fUE2_","fUI1_","fUI2_",
"fMD_","fDI1_","fDI2_","fDE1_","fDE2_","fDS1_","fDS2_",
" ", " ",
"b_ ","bUS1_","bUS2_","bUE1_","bUE2_","bU1_","bU2_",
"bMD_","bDI1_","bDI2_","bDE1_","bDE2_","bDS1_","bDS2_"
}; /* */
#if 0
p_CHAR links_name[] = /* array of link's names */
{"ARC_UNKNOWN", "ARC_LEFT", "ARC_RIGHT", "ARC_UP", "ARC_DOWN",
"ARC_UP_LEFT", "ARC_DOWN_LEFT", "ARC_UP_RIGHT", "ARC_DOWN_RIGHT",
"ARC_LINE_VERT", "ARC_LINE_HOR", "ARC_LINE_SLASH", "ARC_LINE_BACKSLASH",
"ARC_S_LIKE", "ARC_Z_LIKE", "ARC_SHORT"
};
#else
p_CHAR links_name[] = /* array of link's names */
{"LINK_UNKNOWN",
"LINK_HCR_CCW", "LINK_LCR_CCW", "LINK_MCR_CCW", "LINK_SCR_CCW", "LINK_TCR_CCW",
"LINK_LINE",
"LINK_TCR_CW", "LINK_SCR_CW", "LINK_MCR_CW", "LINK_LCR_CW", "LINK_HCR_CW",
"LINK_HS_LIKE", "LINK_S_LIKE", "LINK_Z_LIKE", "LINK_HZ_LIKE"
};
#endif
#endif /* PG_DEBUG... */
/***************************************************************************/