1#	$(CAD_ROOT)/magic/sys/.magicrc
2# 	System wide start up file for magic, defines default macros.
3#
4#
5#	Source file proto.magicrc.in
6#	Process this file with the cpp macro processor
7#
8#ifdef MAGIC_WRAPPER
9puts stdout "Processing system .magicrc file"
10#endif /* MAGIC_WRAPPER */
11#ifdef USE_NEW_MACROS
12###############################################################################
13#  Default .magicrc macro file (new macros)
14###############################################################################
15# A key
16macro a "select visible"
17macro A "select more visible"
18macro ^A "select less visible"
19# B key
20macro b "box"
21macro B "findbox"
22# C key
23macro c "copy"
24# D key
25macro d "delete"
26macro ^D "erase $"
27# E key
28macro e "edit"
29# F key
30macro f "sideways"
31macro F "upsidedown"
32# G key
33macro g "grid"
34macro G "grid 2"
35# I key
36macro i "select cell"
37macro I "select more cell"
38#ifdef XLIB
39macro Control_XK_i "select less cell"
40#endif
41# L key
42#ifdef USE_READLINE
43imacro l "label "
44#endif   /* (USE_READLINE) */
45#ifdef MAGIC_WRAPPER
46imacro l "label "
47#endif  /* (MAGIC_WRAPPER) */
48macro L "shell ls"
49macro ^L "redraw"
50# M key
51macro m "move"
52macro M "stretch"
53# N key
54macro ^N ""
55# O key
56macro o "openwindow"
57macro O "closewindow"
58# P key
59#ifdef USE_READLINE
60imacro p "paint "
61#endif   /* (USE_READLINE) */
62#ifdef MAGIC_WRAPPER
63imacro p "paint "
64#endif  /* (MAGIC_WRAPPER) */
65# Q key
66#ifdef XLIB
67macro Control_Shift_XK_q "quit"
68#endif /* (XLIB) */
69# R key
70macro r "clockwise"
71macro R "clockwise 270"
72macro ^R "clockwise 180"
73# S key
74macro s "select"
75macro S "select more"
76macro ^S "select less"
77#ifdef XLIB
78macro Control_Shift_XK_s "undo ; select"
79#endif /* (XLIB) */
80# U key
81macro u "undo"
82macro U "redo"
83# V key
84macro v "view"
85macro V "xview"
86# W key
87macro w "writeall"
88macro W "writeall force"
89# X key
90macro x "expand"
91macro X "unexpand"
92macro ^X "expand toggle"
93# Z key
94macro z "zoom .5"
95macro Z "zoom 2"
96macro ^Z "findbox zoom"
97#ifdef XLIB
98macro Control_Shift_XK_z "center"
99#endif /* (XLIB) */
100# Question mark
101macro ? "drc why"
102macro / "select area; what ; select clear"
103# Comma key
104macro , "select clear"
105# Exclamation mark
106#ifdef USE_READLINE
107imacro ! "shell "
108#endif	/* (USE_READLINE) */
109# Space bar
110macro " " "tool"
111# Colon and semicolon (interactive command)
112imacro XK_colon ":"
113imacro XK_semicolon ":"
114#ifdef XLIB
115macro Shift_XK_space "tool box"
116macro Control_XK_space "tool wiring"
117# Arrow keys (X11 versions only)
118macro XK_Left "scroll l .1 w"
119macro Shift_XK_Left "scroll l 1 w"
120macro Control_XK_Left "box grow w 1"
121macro Control_Shift_XK_Left "box shrink e 1"
122macro XK_Right "scroll r .1 w"
123macro Shift_XK_Right "scroll r 1 w"
124macro Control_XK_Right "box grow e 1"
125macro Control_Shift_XK_Right "box shrink w 1"
126macro XK_Up "scroll u .1 w"
127macro Shift_XK_Up "scroll u 1 w"
128macro Control_XK_Up "box grow n 1"
129macro Control_Shift_XK_Up "box shrink s 1"
130macro XK_Down "scroll d .1 w"
131macro Shift_XK_Down "scroll d 1 w"
132macro Control_XK_Down "box grow s 1"
133macro Control_Shift_XK_Down "box shrink n 1"
134# Keypad keys (X11 versions only)
135# Functions duplicated for use both with Num_Lock ON and OFF
136macro XK_KP_Delete "box size 0 0"
137macro XK_KP_Insert "box size 4 4"
138macro XK_KP_0 "box size 7 2"
139macro Shift_XK_KP_0 "box size 7 2"
140macro XK_0 "box size 7 2"
141macro Control_XK_KP_0 "box size 2 7"
142macro Control_XK_KP_Insert "box size 2 7"
143macro XK_KP_End "move sw 1"
144macro XK_KP_Down "move d 1"
145macro XK_KP_2 "stretch d 1"
146macro Shift_XK_KP_2 "stretch d 1"
147macro XK_2 "stretch d 1"
148macro XK_KP_Next "move se 1"
149macro XK_KP_Left "move l 1"
150macro XK_KP_4 "stretch l 1"
151macro Shift_XK_KP_4 "stretch l 1"
152macro XK_4 "stretch l 1"
153macro XK_KP_Begin "findbox zoom"
154macro XK_KP_5 "findbox"
155macro Shift_XK_KP_5 "findbox"
156macro XK_5 "findbox"
157macro XK_KP_Right "move r 1"
158macro XK_KP_6 "stretch r 1"
159macro Shift_XK_KP_6 "stretch r 1"
160macro XK_6 "stretch r 1"
161macro XK_KP_Home "move nw 1"
162macro XK_KP_Up "move u 1"
163macro XK_KP_8 "stretch u 1"
164macro Shift_XK_KP_8 "stretch u 1"
165macro XK_8 "stretch u 1"
166macro XK_KP_Prior "move ne 1"
167# Scroll wheel bindings
168macro XK_Pointer_Button4 "scroll u .05 w"
169macro XK_Pointer_Button5 "scroll d .05 w"
170macro Shift_XK_Pointer_Button4 "scroll l .05 w"
171macro Shift_XK_Pointer_Button5 "scroll r .05 w"
172# Quick macro function keys for scmos tech (X11 versions only)
173macro XK_F1  "paint ndiff"
174macro XK_F2  "paint pdiff"
175macro XK_F3  "paint poly"
176macro XK_F4  "paint poly2"
177macro XK_F5  "paint m1"
178macro XK_F6  "paint m2"
179macro XK_F7  "paint m3"
180macro XK_F8  "paint m4"
181macro XK_F9  "paint ndc"
182macro XK_F10 "paint pdc"
183macro XK_F11 "paint pc"
184macro XK_F12 "paint via"
185#endif	/* (XLIB) */
186#else	/* USE_NEW_MACROS */
187###############################################################################
188#  Default .magicrc macro file (original)
189###############################################################################
190echo ""
191macro s "select"
192macro S "select more"
193macro a "select area"
194macro A "select more area"
195macro f "select cell"
196macro C "select clear"
197macro d "delete"
198macro ^D "erase $"
199macro t "move"
200macro T "stretch"
201macro c "copy"
202macro ^X "expand toggle"
203macro x "expand"
204macro X "unexpand"
205macro q "move left 1"
206macro w "move down 1"
207macro e "move up 1"
208macro r "move right 1"
209macro Q "stretch left 1"
210macro W "stretch down 1"
211macro E "stretch up 1"
212macro R "stretch right 1"
213macro g "gridspace"
214macro G "gridspace 2"
215macro u "undo"
216macro U "redo"
217macro v "view"
218macro z "findbox zoom"
219macro Z "zoom 2"
220macro b "box"
221macro B "findbox"
222macro , "center"
223macro y "drc why"
224macro ^L "redraw"
225macro y "drc why"
226macro ? "help"
227macro o "openwindow"
228macro O "closewindow"
229macro " " "tool"
230imacro XK_colon ":"
231imacro XK_semicolon ":"
232macro ^R "iroute route -dBox"
233macro ^N "iroute route -dSelection"
234#endif	/* USE_NEW_MACROS */
235# Allow some box manipulation from all tools.
236#ifdef MAGIC_WRAPPER
237macro Control_Button1 "*bypass box move bl cursor"
238macro Control_Button2 "*bypass paint cursor"
239macro Control_Button3 "*bypass box corner ur cursor"
240# Box tool button bindings
241macro Button1 "*bypass box move bl cursor"
242macro Shift_Button1 "*bypass box corner bl cursor"
243macro Button2 "*bypass paint cursor"
244macro Shift_Button2 "*bypass erase cursor"
245macro Button3 "*bypass box corner ur cursor"
246macro Shift_Button3 "*bypass box move ur cursor"
247#else /* (!MAGIC_WRAPPER) */
248macro Control_Button1 "box move bl cursor"
249macro Control_Button2 "paint cursor"
250macro Control_Button3 "box corner ur cursor"
251# Box tool button bindings
252macro Button1 "box move bl cursor"
253macro Shift_Button1 "box corner bl cursor"
254macro Button2 "paint cursor"
255macro Shift_Button2 "erase cursor"
256macro Button3 "box corner ur cursor"
257macro Shift_Button3 "box move ur cursor"
258#endif /* (!MAGIC_WRAPPER) */
259# Color window button bindings
260macro color Button1 "pushbutton left"
261macro color Button2 "pushbutton middle"
262macro color Button3 "pushbutton right"
263macro color u "undo"
264macro color U "redo"
265macro color plus "color next"
266macro color minus "color last"
267# Netlist window button bindings
268macro netlist Button1 "pushbutton left"
269macro netlist Button2 "pushbutton middle"
270macro netlist Button3 "pushbutton right"
271# Wind3D window key bindings
272macro wind3d  L "level up"
273macro wind3d  l "level down"
274macro wind3d  C "cif"
275macro wind3d  " " "defaults"
276macro wind3d  ^L "refresh"
277macro wind3d  Z "zoom 2.0 1 rel"
278macro wind3d  z "zoom 0.5 1 rel"
279macro wind3d  1 "view 0 10 0 rel"
280macro wind3d  2 "view 0 -10 0 rel"
281macro wind3d  3 "view 10 0 0 rel"
282macro wind3d  4 "view -10 0 0 rel"
283macro wind3d  5 "view 0 0 10 rel"
284macro wind3d  6 "view 0 0 -10 rel"
285macro wind3d  7 "view 0 1 0 rel"
286macro wind3d  8 "view 0 -1 0 rel"
287macro wind3d  9 "view 1 0 0 rel"
288macro wind3d  0 "view -1 0 0 rel"
289#ifdef XLIB
290macro wind3d  XK_Up "scroll 0 -0.25 0 rel"
291macro wind3d  XK_Down "scroll 0 0.25 0 rel"
292macro wind3d  XK_Left "scroll 0.25 0 0 rel"
293macro wind3d  XK_Right "scroll -0.25 0 0 rel"
294macro wind3d  XK_minus "view 0 0 1 rel"
295macro wind3d  XK_equal "view 0 0 -1 rel"
296macro wind3d  XK_greater "zoom 1 2.0 rel"
297macro wind3d  XK_less "zoom 1 0.5 rel"
298#endif	/* (XLIB) */
299#
300# Load basic set of fonts
301#
302setlabel font FreeSans.pt3 0.58
303setlabel font FreeSerif.pt3 0.58
304setlabel font FreeMono.pt3 0.6
305#
306# Additions for Tcl GUI wrapper
307#
308#ifdef MAGIC_WRAPPER
309magic::suspendout
310if {![catch {set Opts(tools)}]} { magic::enable_tools }
311set GND "gnd!"
312set VDD "vdd!"
313magic::resumeout
314catch {source ${CAD_ROOT}/magic/sys/site.def}
315#endif  /* (!MAGIC_WRAPPER) */
316#
317#ifdef SCHEME_INTERPRETER
318#
319# additions for default scm path
320#
321define scm-library-path "CAD_DIR/lib/magic/scm"
322load-scm "default.scm"
323load-scm "layout.scm"
324#endif 	/* (SCHEME_INTERPRETER) */
325