Codebase list tkgate / debian/1.6i-1
debian/1.6i-1

Tree @debian/1.6i-1 (Download .tar.gz)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
		TkGate 1.6i Release notes.

*****************************************************************************
INSTALLATION

To install tkgate follow the steps below:

0) Obtain and install tcl/tk 8.0 or later.

1) cd to the directory in which you unpacked this distribution.

2) Run the configuration script:

      ./configure

   The script will run a series of tests to discover properties of your
   environment and edit the config.h file.  The specific properties that
   are tested are:

    * O/S:				(FreeBSD, SunOS, Linux, other) 
    * Compiler:				(gcc or cc)
    * Tcl/Tk Version:			(8.0jp, 8.2 or 8.0)
    * Language support:			(Japanese/English or English Only)
    * Grammar compiler:			(bison or yacc)
    * Lexical analyizer:		(flex or lex)
    * Test for required libs:		(-X11)
    * Test for system-dependent libs:	(-xpg4, -ldl, -lsocket, -lnsl, -lm)
    * Test for long long:		("1" or "0")
    * Test for optreset requirement:	("1" or "0")
    * Check OS name to determine
         signal() semantics:		(handler disabled/reenabled on catch)

   The following actions are performed:
    * config.h is edited to reflect the results of the tests above.
    * Top-level makefile is built using xmkmf 
    * Subdirectory (src/common, src/tkgate, src/gsim, src/gmac) makefiles are built using xmkmf 
    * Include file links are built
    * Dependencies are built.

   Normally the configuration will take place fully automatically , but if
   some components such as tcl/tk are in non-standard locations you may need
   to edit config.h and add the required directories to TKGATE_INCDIRS and
   TKGATE_LIBDIRS.

3) Edit the file config.h to change the install directory locations if
   necessary.  By default, executables will be installed in
   "/usr/X11R6/bin", man pages in "/usr/X11R6/man/man1", and library
   files in "/usr/X11R6/lib/tkgate-1.6g".  Do not edit any of the lines
   between the BEGIN-AUTO and END-AUTO lines as these will be
   automatically generated by the configure script.

4) Edit the file "sitename.txt" to specify the name for the site.  This name
   will appear on traces and circuit diagrams printed by TkGate.  The default
   name is "Earth" (probably correct for most users, but maybe a little unspecific).
   Users can also override the site name by editing their preferences.

5) Compile TkGate using the command:

      make

6) Install TkGate using the commands:

      make install
      make install.man

   If you don't have write access to the install directories, you can also
   run TkGate from the compilation directory which is used as a secondary
   home directory.  You can also explicitly set the home directory by setting
   the enviornment variable TKGATE_HOME.  The executable for tkgate will be
   in src/tkgate/tkgate.

7) (optional) Set the protection on the file "tkgate-error.log" in the tkgate
   home directory to be publicly writable.  TkGate makes internal consistency
   checks and logs any problems to this file (these are potential problems with
   TkGate, not with the circuit being edited).  If the file is unwritable, errors
   will be logged to the file of the same name in the current directory.  Normally
   this file should have few or no entries.

*****************************************************************************
SAVE FILE DIFFERENCES

1.5c and earlier
   Positions of wire "tap" elements have changed slightly due to the new method
   for drawing buses.  When reading old files, the positions will be slightly
   modified to fit the new scheme, but if you save the file, wire positions will
   be slightly off when rereading from an old version of tkgate.

   Basic flip-flop elements do not exist in this version and lower.
   
1.4c and earlier
   Multi-technology delay specification, and per-gate delay specification is
   not supported.  If any delays other than "default" are used, the file may
   not be readable by older versions of tkgate.

*****************************************************************************
CHANGES 

Version 1.6i - January 22, 2002
      * Added extender bars on multi-input (more than 2) AND, OR and XOR
	gates to avoid "crunching" of wires for gates with many inputs.
	This feature is off by default when loading save files for earlier
	versions of tkgate unless explicitly enabled.
      * Fixed problem with using some right mouse button popup commands
	when zoomed.
      * Increased delay between a mouse press and hold on a signal and the
	pop-up showing the signal value while in simulation mode.  The previous
	short delay interfered with detection of a double click on some systems
	and thus made it difficult to set probes.  It now also possible to
	customize this delay through the simulator page on options dialogue box.
      * Disabled bug allowing net options to be modified while in simulator mode.
      * Added alternate probe set/remove command using 'P' keyboard shortcut
	or menu.
      * Initial support for "hierarchy graph" for Postscript output added.  This
	support is currently limited to graphs that fit on a single page.
      * Fixed several bugs that could sometimes cause a core dump and/or
	save file corruption when manipulating "wire tap" elements.
      * Fixed bug that sometimes resulted in a failure to determine the direction
	of concat (wire merge) elements.
      * Fixed a bug that caused calloc() to be called with nmemb=0.
      * Marked various popups as transient so they would not get buried under
	the main window.
      * Changed port add/editing so that an "*unnamed*" signal will be assigned
	a standard generated name.
      * Fixed bugs with port on editing through properties dialog box on modules.
      * Fixed problem with panic save feature.  The panic save feature causes
	tkgate to attempt to save the current circuit in PANIC.v if a core dump
	is detected.
      * Produces less confusing messages when running under an unsupported locale.

Version 1.6h - June 11, 2001
      * Fixed printing problems with dips, muxes and registers.
      * Fixed Japanese in menus and tutorials.
      * Added bit selection feature for register codes to gmac.
      * Made '\r' a valid whitespace character.
      * Fixed bug that allowed creation of meaningless inverters on wire taps.
      * Fixed core dump bug with "replicating" wire taps.
      * Fixed serious problem with cut/paste causing internal data structures
	and save file data to become corrupt.  The problem occured when gates
	attached to the same net were included in the cut, but one or more of
	the joints/taps on the net were not included in the cut causing a
	partitioning of the net.
      * Added a data structure integrity check feature.

Version 1.6g - February 6, 2001
      * Added zoom in/out feature.
      * Fixed core dump caused by start-up time errors on some platforms.
      * Fixed core dump caused by loading out-dated tkgate file while flashing
        critical path option is enabled.
      * Improved commenting of macrocode in "menagerie" example.
      * Minor change to scrollbar semantics

Version 1.6f - November 30, 2000
      * Fixed incorrect installation of Japanese tutorials.
      * Japanese Translation of tutorials partially completed.
      * Added support for Spanish.
      * Fixed problem with dialog windows being lowered when opening
        a subordinate load/save file box.
      * Fixed problem with setting label on frames.

Version 1.6e - November 16, 2000
      * Fixed problem with memories with less than 8-bit data lines. 
      * Fixed possible direction problem with wire merge.

Version 1.6d - October 19, 2000
      * Fixed carry-out on 32-bit adders
      * Postscript generator now uses latin1 encoding to enable correct
	printing of accented characters.
      * Dip switch "value" boxes are now closed when exiting the simulation.	
      * Fixed Japanese configure problem.

Version 1.6c - October 16, 2000
      * Improved multi-lingual support.
      * Added French support.

Version 1.6b - October 4, 2000
      * Fixed possible core dump problem when deleting gates.
      * Fixed configuration script problems.

Version 1.6 - September 27, 2000
      * Experimental support for critical path analysis
      * Highlighting of selected net
      * Smooth scrolling in edit window
      * Added a seprated "D flip-flop" element.
      * -P and -p switch allow printing without starting the GUI.
      * Fixed problem with non-functional output inverters on several gate types
	including registers, rams, roms and ttys.
      * Fixed hang problem with simulator when root module not at top of module stack. 
      * Fixes problem with adding outputs to decoders. 
      * Fixes extraneous "unknown version" messages when loading old save files. 
      * Fixes problem with externally generated "destroy" events on scope windows.

Version 1.5c - September 8, 2000
      * Fixes an intermittent core dump problem in editor when manipulating wires. 
      * Fixes problem with inverters in postscript output. 
      * Fixes problem with configuration file in detecting existance of bison. 

Version 1.5b - June 27, 2000

      * Fixes core dump problem in simulator.

      * Fixes possible core dump in editor when exiting simulator.

Version 1.5 - June 26, 2000
      * Support for multiple gate 'technologies' and per-gate delay
	specification added.

      * Menu and shortcut internals updated.  Shortcuts and menus for gate
	definitions now contained in the gate definition files.  This is a
	precursor to supporting user-definiable primitives.  The new shortcut
	definition method allows keyboard shortcuts to be defined in .tkgaterc
	file.

      * Better recovery from syntax errors in input files.

      * Accedental editing of library modules disabled.  An explicit "Claim"
        command was added to convert library modules to user modules.

      * Bug fixes
           - fixed slopy gate label positions

           - fixed slopy delete of mux/demux 

           - fixed position of input numbers on mux/demux

           - fixed corruption of internal data structures when doing a
	     cut/paste in Edit Interface page

           - fixed core dump when opeing "Edit Interfaces" while simulation was
             active (now disabled while in simulation mode).

           - fixed possible save file corruption due to null net names.

           - fixed multiple module instances on the Edit Interfaces page.

           - fixed erroneous setting of 'modified' flag when opening Edit
	     Interfaces page.

	   - fixed memory initialization problem in gsim causing periodic
	     simulator crashes.

           - moved "Circuit Properties" command from "Module" menu to "Edit" menu.     

      * NOTE: Save files from tkgate 1.5 may not be readable under earlier
        versions of tkgate if you use the new delay specification features.

Version 1.4c - June 12, 2000
      * Fixed Postscript output and bit tap problems (Applied patch tkgate-1.4b.patch1) 

      * Added Postscript output of Japanese (works for printers with Japanese fonts only). 

      * Made ports on modules easier to select. 

      * Fixed problem with changing port type in external port dialog box. 

Version 1.4b - June 7, 2000
      * Fixed the library module problem (applied tkgate-1.4.patch1)

      * Fixed problems with Japanese input

      * Created a seperate directory for Japanese tutorials.  Selection of the
        tutorial directory depends on the selected interface language. Currently
        only a small portion of the tutorial have been translated. 

Version 1.4 - June 2, 2000
      * Added LED devices (single bit, bar graph, 7-segment)

      * Added context sensitive popup menus (bound to right mouse button)

      * Added "add wire segment" feature to attach new wire segments in
        the middle of existing wires.

      * Bug fix (Simulator crashed when circuit contained anchored modules)

      * Bug fix (States of switches in modules sometimes not shown properly
        when there are multiples instances of that module)

      * Bug fix (Various objects still created with default name even
        when hitting 'cancel' in dialog box).

      * Bug fix (Y2K problem in Postscript output)

      * Bug fix (Connecting wires of different bit widths caused core dump)

Verion 1.3b - May 4, 2000
      * Fixed minor problem with compiling in some versions of Linux

      * Improved commenting in the Menagerie CPU example.

      * Fixed bug in editing comments (comment not saved when closing dialog box
	by hitting return in hyperlink entry box).

Verion 1.3 - April 20, 2000
      * Microcode/macrocode compiler (gmac) now generates a human readable symbol map.

      * Better delay model

      * Multi-lignual features added (English and Japanese)

      * Hyperlink comments

      * Improved tutorial (using hyperlinks)

      * Added 'zoom' command to simulator script to set zoom factor on scope.

Version 1.2b - April 13, 2000
      * Fixed problems with SunOS 5.7

Version 1.2 - April 13, 2000
      * Hit test for gates no works better for long thin gates such as registers

      * Problem with deleting ports on primitive gates fixed

      * Horizontal/Vertical alignment feature added (see "Edit" menu)

Version 1.1 - March 31, 2000
      * Color interface implemented. 

      * Smooth scrolling in scope implemented. 

      * Fixed bugs under Solaris (SunOS 5.5) 

      * Fixed verious other bugs. 

Version 1.0 - March 22, 2000
      * Fixed bugs. 

Version 0.9 - May 28, 1999
      * Initial public release. 

*****************************************************************************
USING LATER VERSIONS OF TCL/TK

  TkGate will search the list TKGATE_TCLTK_VERSIONS defined in config.h for
  the first properly installed version of tcl and tk.  To add additional later
  versions, simply add them to the beginning of the list.  Japanese versions
  of tcl/tk should be added to the list TKGATE_JP_TCLTK_VERSIONS.  If
  TKGATE_LANG is set to "jp", these versions will be tried first.

*****************************************************************************
NON STANDARD TCL/TK LOCATIONS

  TkGate requires at least tcl/tk 8.0 to compile and run.  It will not compile
  with earlier versions, so make sure you have the right version.

  In a "standard" tcl/tk installation, files are in the following locations:

	Tcl include files in:		/usr/local/include/tcl8.0
	Tk include files in:		/usr/local/include/tk8.0
	Tcl library files:		/usr/local/lib/libtcl80.a or /usr/local/lib/libtcl8.0.a
	Tk library files:		/usr/local/lib/libtk80.a or /usr/local/lib/libtk8.0.a
	Tcl script files:		/usr/local/lib/tcl8.0
	Tk script files:		/usr/local/lib/tk8.0

   The include and library files are required to compile and link tkgate.
   If your Tcl/Tk installation is not in the location above, you may have
   to manually set some of the the configuration options.  To do this, make
   the following changes to "config.h":

     * Look for the definition of "TKGATE_INCDIRS".  Add the directories where
     tcl and tk include files can be found.  Be careful to add these to the
     beginning of the list in case header files for earlier versions
     of tcl/tk are in the listed directories.

     * Look for the definition of "TKGATE_LIBDIRS".  Add the directories where
     tcl and tk library files can be found.

   Now try running the "configure" script.  "configure" will attempt to find the
   additional tcl/tk script files based on the include file directories.   If it
   is still unable to find them, warning messages will be printed at the end.
   Follow the steps for MANUAL CONFIGURATION and explicitly set the variables
   TCL_LIBRARY and TK_LIBRARY.  These should point to the directories for the tcl
   and tk initialization script files.  The tcl script directory should include
   a file named "init.tcl" and the tk script directory should include a file
   names "button.tcl".  

   PITFALLS:

   Make sure the list of include directories in the TKGATE_IPATH variable
   in config.h (after running the configure script) includes directories
   in the correct order.  If an old version of tcl.h or tk.h is in a
   directory earlier in the list than the correct version, tkgate will
   not compile.


*****************************************************************************
MULTI-LINGUAL SUPPORT (JAPANESE)

To compile tkgate with Japanese support you will need the Japanese
version of tcl/tk version 8.0 or later.  Next edit "config.h" and set
the value of "TKGATE_LANG" to "jp".  If everything goes well, you can
simply configure and install the system as usual, otherwise you may
need to manually configure (see the next section).

If you have compiled tkgate with Japanese support, you can enable the
support by setting the LANG environment variable to a valid locality
value, for example 'ja_JP.EUC' for Japanese, and 'ASCII' for English.
You can also specify the locality with the -L switch.  Attempting to
run TkGate with an invalid locality value could cause it to core dump
in the tcl/tk initialization routines.  You must also set up kanji
conversion and input servers in order to input Japanese.  Currently,
Japanese is only supported in comments and "frames".

There are many ways of configuring kanji conversion and input servers,
so I will not go into all of them here.  I have tested tkgate with
wnn4/jserver as the conversion server and kinput2 as the input server.
I started jserver from rc.local, executed kinput2 from my .xinitrc
using the command:

   kinput2 -wnn -jserver localhost&

edited my .Xresources file to contain the line:

   *inputMethod: kinput2

and my .cshrc file to contain the line:

   setenv XMODIFIERS "@im=kinput2"

To enter switch between English input and Japanese input use the
command <shift-space>.  To convert a kana string use the command
<control-J>.

*****************************************************************************
MANUAL CONFIGURATION

If the configuration script fails to run for some reason, you can manually
configure the system by uncommenting the defines in the "override parameters"
section of config.h.  Set each of these to the correct value and run the
configure script as:

   ./configure -notests

Then, make and install as usual.

*****************************************************************************
TROUBLESHOOTING

- Compiler errors with Tcl/Tk components.
- Link errors with Tcl/Tk components.
- TkGate compiles and runs, menus and buttons don't work.
   See the secion NON STANDARD TCL/TK LOCATIONS

- Compiler warnings in luthor.
   In some versions of flex, the generated code does not pass gcc with all warnings
   enabled (-Wall). These warnings can be safely ignored.

- Configuration script fails to run.
   See the section on MANUAL CONFIGURATION  

- Got "Unknown language" error.
   Make sure you have set TKGATE_LANG in config.h to either "jp" or "en".  The
   value should be unquoted.  If you still get errors, it is possible the code
   to extract this information is not working on your system.  You can bypass
   the language extraction code by replacing the body of "findlang" in the file
   "configure" with a simple assignment of the variable "lang" to one of the
   two values.

*****************************************************************************
CREDITS

  * Thanks to Marc Lavallee <odradek@videotron.ca> for Linux rpm spec file.
  * Thanks to Laurent.Bonnaud@iut2.upmf-grenoble.fr for French translation.
  * Thanks to Agustin Borrego <agusbo@iponet.es> for Spanish translation.