1 /*------------------------------------------------------------\
2 |                                                             |
3 | This file is part of the Alliance CAD System Copyright      |
4 | (C) Laboratoire LIP6 - D�partement ASIM Universite P&M Curie|
5 |                                                             |
6 | Home page      : http://www-asim.lip6.fr/alliance/          |
7 | E-mail         : mailto:alliance-users@asim.lip6.fr       |
8 |                                                             |
9 | This progam is  free software; you can redistribute it      |
10 | and/or modify it under the  terms of the GNU General Public |
11 | License as  published by the Free Software Foundation;      |
12 | either version 2 of the License, or (at your option) any    |
13 | later version.                                              |
14 |                                                             |
15 | Alliance VLSI  CAD System  is distributed  in the hope that |
16 | it  will be useful, but WITHOUT  ANY WARRANTY;              |
17 | without even the  implied warranty of MERCHANTABILITY or    |
18 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General       |
19 | Public License for more details.                            |
20 |                                                             |
21 | You should have received a copy  of the GNU General Public  |
22 | License along with the GNU C Library; see the file COPYING. |
23 | If not, write to the Free Software Foundation, Inc.,        |
24 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                     |
25 |                                                             |
26 \------------------------------------------------------------*/
27 
28 /*------------------------------------------------------------\
29 |                                                             |
30 | Tool    :                   GRAAL                           |
31 |                                                             |
32 | File    :                  GSB101.h                         |
33 |                                                             |
34 | Author  :                Jacomme Ludovic                    |
35 |                                                             |
36 | Date    :                  28.03.95                         |
37 |                                                             |
38 \------------------------------------------------------------*/
39 
40 /*------------------------------------------------------------\
41 |                                                             |
42 |                           Constants                         |
43 |                                                             |
44 \------------------------------------------------------------*/
45 
46 # ifndef GRAAL_GSB
47 # define GRAAL_GSB
48 
49 # define GRAAL_TRUE   1
50 # define GRAAL_FALSE  0
51 
52 # define GRAAL_ERROR  1
53 # define GRAAL_OK     0
54 
55 # define GRAAL_NORTH        0
56 # define GRAAL_SOUTH        1
57 # define GRAAL_EAST         2
58 # define GRAAL_WEST         3
59 
60 # define GRAAL_NORTH_MASK   1
61 # define GRAAL_SOUTH_MASK   2
62 # define GRAAL_WEST_MASK    4
63 # define GRAAL_EAST_MASK    8
64 
65 # define GRAAL_DEFAULT_FIGURE_NAME      "NONAME"
66 
67 /*------------------------------------------------------------\
68 |                                                             |
69 |                           Edit Mode                         |
70 |                                                             |
71 \------------------------------------------------------------*/
72 
73 # define GRAAL_EDIT_MEASURE             (char)0x00
74 # define GRAAL_CREATE_SEGMENT           (char)0x01
75 # define GRAAL_CREATE_SEGMENT_WIRE      (char)0x02
76 # define GRAAL_CREATE_VIA               (char)0x03
77 # define GRAAL_CREATE_TRANSISTOR        (char)0x04
78 # define GRAAL_CREATE_TRANSISTOR_WIRE   (char)0x05
79 # define GRAAL_CREATE_CONNECTOR         (char)0x06
80 # define GRAAL_CREATE_INSTANCE          (char)0x07
81 # define GRAAL_CREATE_REFERENCE         (char)0x08
82 # define GRAAL_CREATE_ABUTMENTBOX       (char)0x09
83 # define GRAAL_SELECT_POINT_IDENTIFY    (char)0x0A
84 # define GRAAL_SELECT_POINT_COPY        (char)0x0B
85 # define GRAAL_SELECT_POINT_MOVE        (char)0x0C
86 # define GRAAL_SELECT_POINT_DELETE      (char)0x0D
87 # define GRAAL_SELECT_POINT_STRETCH     (char)0x0E
88 # define GRAAL_SELECT_POINT_MODIFY      (char)0x0F
89 # define GRAAL_SELECT_WINDOW_COPY       (char)0x10
90 # define GRAAL_SELECT_WINDOW_MOVE       (char)0x11
91 # define GRAAL_SELECT_WINDOW_DELETE     (char)0x12
92 # define GRAAL_SELECT_WINDOW_STRETCH    (char)0x13
93 # define GRAAL_SELECT_WINDOW_MODIFY     (char)0x14
94 # define GRAAL_SELECT_WINDOW_IDENTIFY   (char)0x15
95 # define GRAAL_EDIT_COPY_POINT          (char)0x16
96 # define GRAAL_EDIT_COPY_WINDOW         (char)0x17
97 # define GRAAL_EDIT_MOVE_POINT          (char)0x18
98 # define GRAAL_EDIT_MOVE_WINDOW         (char)0x19
99 # define GRAAL_EDIT_STRETCH_POINT       (char)0x1A
100 # define GRAAL_EDIT_STRETCH_WINDOW      (char)0x1B
101 # define GRAAL_TOOLS_EQUI               (char)0x1C
102 # define GRAAL_TOOLS_FLATTEN            (char)0x1D
103 # define GRAAL_TOOLS_UNFLATTEN          (char)0x1E
104 # define GRAAL_TOOLS_PEEK               (char)0x1F
105 # define GRAAL_TOOLS_DRUC               (char)0x20
106 # define GRAAL_TOOLS_REAL_FLATTEN       (char)0x21
107 # define GRAAL_TOOLS_HIERARCHY_DOWN     (char)0x22
108 # define GRAAL_TOOLS_HIERARCHY_SHOW     (char)0x23
109 # define GRAAL_CREATE_BIGVIA            (char)0x24
110 
111 
112 # define GRAAL_ZOOM_CENTER            (char)0x80
113 # define GRAAL_ZOOM_IN                (char)0x81
114 # define GRAAL_ZOOM_PAN               (char)0x82
115 
116 # define GRAAL_ZOOM_MARK              (char)0x80
117 
118 /*------------------------------------------------------------\
119 |                                                             |
120 |                           Input Mode                        |
121 |                                                             |
122 \------------------------------------------------------------*/
123 
124 # define GRAAL_INPUT_POINT     0
125 # define GRAAL_INPUT_ORTHO     1
126 # define GRAAL_INPUT_LINE      2
127 # define GRAAL_INPUT_LSTRING   3
128 # define GRAAL_INPUT_BOX       4
129 # define GRAAL_INPUT_SORTHO    5
130 # define GRAAL_INPUT_HALF_BOX  6
131 
132 /*------------------------------------------------------------\
133 |                                                             |
134 |                           Active Name                       |
135 |                                                             |
136 \------------------------------------------------------------*/
137 
138 # define GRAAL_FIGURE_NAME                 0
139 # define GRAAL_INSTANCE_NAME               1
140 # define GRAAL_FIGURE_CONNECTOR_NAME       2
141 # define GRAAL_INSTANCE_CONNECTOR_NAME     3
142 # define GRAAL_FIGURE_SEGMENT_NAME         4
143 # define GRAAL_INSTANCE_SEGMENT_NAME       5
144 # define GRAAL_FIGURE_REFERENCE_NAME       6
145 # define GRAAL_INSTANCE_REFERENCE_NAME     7
146 
147 # define GRAAL_MAX_ACTIVE_NAME             8
148 
149 /*------------------------------------------------------------\
150 |                                                             |
151 |                           Fill Mode                         |
152 |                                                             |
153 \------------------------------------------------------------*/
154 
155 # define GRAAL_FILL_MODE_OUTLINE   0
156 # define GRAAL_FILL_MODE_FILL      1
157 # define GRAAL_FILL_MODE_PATTERN   2
158 
159 /*------------------------------------------------------------\
160 |                                                             |
161 |                            Types                            |
162 |                                                             |
163 \------------------------------------------------------------*/
164 /*------------------------------------------------------------\
165 |                                                             |
166 |                          Variables                          |
167 |                                                             |
168 \------------------------------------------------------------*/
169 
170   extern char  *GRAAL_SEGMENT_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
171   extern char  *GRAAL_TRANSISTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
172   extern char  *GRAAL_CONNECTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
173   extern float  GRAAL_SEGMENT_VALUE_TABLE[ MBK_MAX_LAYER ][ 2 ];
174   extern char  *GRAAL_VIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
175   extern char  *GRAAL_BIGVIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
176   extern float  GRAAL_BIGVIA_VALUE_TABLE[ MBK_MAX_LAYER ][ 1 ];
177   extern char  *GRAAL_REFERENCE_NAME_TABLE[ MBK_MAX_REFERENCE ][ 3 ];
178   extern char  *GRAAL_ORIENT_NAME_TABLE[ MBK_MAX_ORIENT ][ 3 ];
179   extern char  *GRAAL_SYMMETRY_NAME_TABLE[ MBK_MAX_SYMMETRY ][ 3 ];
180   extern char  *GRAAL_RDS_LAYER_NAME_TABLE[ RDS_ALL_LAYER ][ 3 ];
181   extern int    GRAAL_RDS_LAYER_PATTERN_TABLE[ RDS_ALL_LAYER ];
182   extern long   GRAAL_PEEK_BOUND;
183   extern char  *GRAAL_CURSOR_COLOR_NAME;
184   extern long   GRAAL_CURSOR_SIZE;
185   extern float  GRAAL_LOWER_GRID_STEP;
186   extern float  GRAAL_LOWER_FIGURE_STEP;
187   extern float  GRAAL_LOWER_INSTANCE_STEP;
188   extern float  GRAAL_LOWER_REFERENCE_STEP;
189   extern float  GRAAL_LOWER_SEGMENT_STEP;
190   extern float  GRAAL_LOWER_CONNECTOR_STEP;
191   extern long   GRAAL_RDS_LAMBDA;
192   extern float  GRAAL_SCALE_X;
193   extern long   GRAAL_SCALE;
194   extern char   GRAAL_XOR_CURSOR;
195 
196   extern char   GRAAL_INSTANCE_INTERFACE;
197   extern char   GRAAL_FILL_MODE;
198   extern char   GRAAL_CONNECTOR_INDEX;
199   extern char   GRAAL_FORCE_DISPLAY;
200   extern char   GRAAL_BLACK_BOX_STRING;
201   extern char   GRAAL_SWITCH_COLOR_MAP;
202 
203   extern char   GRAAL_RDS_ACTIVE_LAYER_TABLE[ RDS_ALL_LAYER ];
204   extern char   GRAAL_RDS_ACTIVE_NAME_TABLE[ GRAAL_MAX_ACTIVE_NAME ];
205   extern long  *GRAAL_CUT_C_X_ARRAY [ MBK_MAX_LAYER ];
206   extern char   GRAAL_CUT_C_X_LIST[ MBK_MAX_VIA ];
207 
208   extern char  *GRAAL_TECHNO_NAME;
209   extern char  *GRAAL_GMS_FILE_NAME;
210 
211 /*------------------------------------------------------------\
212 |                                                             |
213 |                          Functions                          |
214 |                                                             |
215 \------------------------------------------------------------*/
216 
217   extern char *GraalPostTreatString();
218   extern void GraalLoadParameters();
219   extern void GraalViewParameters();
220   extern void GraalInitializeCutCxTable();
221   extern void Graalenv();
222 
223 # endif
224