% CHANGES: revision history for HADES
%
% (C) 1997-2002 F.N.Hendrich, hendrich@informatik.uni-hamburg.de
%               University of Hamburg, Computer Science
%

Notation:

K = killer bug
B = bug
P = problem, low priority
I = info
F = fix
N = new function
* = wish / planned feature

---------------------------------------------------------------------------

Known Bugs/Features:

B design manager 'forgets' design name (when opened with subdesign->edit)

B design manager has problems to access files when CLASSPATH setup is not
  exactly correct - it should be more forgiving...

P The edit->initialize->0/1/X function may lead to inconsistent signal
  values in hiearchical designs. Note that these functions are disabled
  by default and can only be used after editing hades.cnf. Use with care.

---------------------------------------------------------------------------

25.10.02

F
  implement doFullScreen() in hades.gui.Editor. Note that setBounds()
  and doLayout() may not work on all versions of the JDK.

F
  disable showing tool tips from ToolTipManager while the popup-menu on
  ObjectCanvas.isShowing() -- with a litte luck, the AWT will
  survive this possibly thread-unsafe meddling...

  Due to the, say, "minimal" API of java.awt.PopupMenu, there is no
  standard way to check whether the popup menu is showing. Instead,
  we set a isPopupShowingFlag in ObjectCanvas just before we call 
  popup.show(). Getting to know whether the menu has been closed,
  however, is impossible with the current API. Instead, we reset the
  flag on the next mouse motion event or moust event... 

  To locate the source code for this hack, grep for "-Q-" in 
  ObjectCanvas and ToolTipManager.

24.10.02

N
  changed hades.gui.EditFrame to check for editor.isViewMode().
  In viewmode, we construct the MenuBar, but we do not add it
  the the main EditFrame window.

F
  changed jfig.canvas.TopLeftRulerCanvas to allow to disable the
  rulers, which is needed for viewmode. Removed double declaration
  of "hasRulers" flag, and updated the ruler offset calculation 
  when the rulers are off. 
 
  Note: the ruler triangle markers are still alive...

N
  changed hades.gui.KeyHandler to check for editor.isViewMode()
  before dispatching callbacks to the editor. This effectively
  disables all editing key shortcuts, but leaves functions like
  zoom or toggle glowmode active. Note that the '0' and '1'
  shortcuts to interactively drive a signals are also still active.

N
  new hades.gui.Editor command line option "-viewmode" to disable
  most of the edit operations, while keeping zoom and display
  controls alive. This mode also switches the ObjectCanvas to
  disable the rulers and the grid; and it loads a minimal popupmenu
  from "/hades/gui/ViewModePopupMenu.txt".

30.08.02

N
  new classes hades.models.register.CounterRE, CounterRE8, and
  CounterRE16, a rising-edge triggered synchronous n-bit counter
  with reset and enable input, user settable counting limit,
  and carry output.

20.08.02

F
  new implementatin of MoveSelectionCommand
  

... several experiments with gcj and gcj optimization


30.07.02

F
  updated the "HADES-TODO" list; also re-assigned priorities...


29.07.02

I
  trying gcj -O2 -static on Hades BatchMode.java.

N
  next tutorial revision: fixed several types, index entry cleanups.

F
  changed hades.gui.Console to allow for non-GUI mode, in order to
  better support GCJ/libjava. The class is now no longer derived
  from java.awt.Frame, but instead uses a Frame.

  Added boolean SetupManager property hades.Console.UseAWT 
  property to select GUI mode (=true) or Stdout mode (=false).

27.02.02

N
  first time to get Hades (batch mode) running under GCJ/libjava.
  See my posting to java@gcc.gnu.org for first performance data.

26.07.02

N
  new attempt to (finally) get the selection stuff (cut,copy,paste)
  working. Again use hades.utils.Selection to hold the selected
  objects from hades.gui.SelectObjectCommand, SelectAllCommand,
  SelectRegionCommand.

N
  renamed several method in hades.utils.Selection for consistency 
  with the java.util API 


25.07.02

N
  checked the RaVi simulation models and example designs


24.07.02

F
  minor cleanup in hades.models.io.LED.evaluate()

F
  again, more tutorial fixes

23.07.02

N
  several experiments with GraphicsLCD and GraphicsLCDCanvas,
  trying to improve rendering performance. Also tried 
  BufferedImage.setRGB and getRGB instead of plain Image.

N 
  moved the 74LS590 into hades.models.ttl74, and the demo design
  into /hades/examples/ttl74/
  Warning: the timing parameters in the 74590 model are not yet
  correct; due to too long gate delays the maximum clock freq.
  is around 10 MHz (instead of the specified 20+ MHz).

F
  some more tutorial fixes (again, typos, and image readability)

22.07.02

N
  tutorial updates, mostly fixing typos. Also changed some
  screenshots to use blue instead of light gray for some wires
  in glow-mode; as this greatly improves readability on black
  and white printouts.mode; as this greatly improves readability 
  on black and white printouts.

N
  reported the results of the compiling-with-gcj experiment
  to java@gcc.gnu.org...

N
  another, almost successful attempt to compile Hades+jfig with
  gcj 3.1. The only remaining problems seem to be in Graphics2D
  areas (missing classes Stroke, BasicStroke, GeneralPath)
  and some typos (like the MemoryImageSource constructors).
  

19.07.02

N
  used TestLoadAllDesigns to check all demos and examples in
  the /hades/examples-midi, /hades/models/ttl74, /hades/examples
  hierarchies, fixing several minor (multiple connection) bugs.
  Note: due to classloader problems, the demos using the Python-
  wrapper simulation components will only work when started from
  the /hades directories.

N
  more tutorial updates, new index entries, documented Console
  file logging API, run-for bug explanation, ...

F
  added hades.models.imaging.ImageSource.getPropertySheet 



18.07.02

N
  used new class TestLoadAllDesigns to check all demo designs
  in the /hades/examples-unihh hierarchy, fixing several
  minor bugs.

N
  new class hades.utils.TestLoadAllDesigns to automatically
  generate a list of design files, and to load those design
  files while logging any initialization errors.

F
  for consistency, renamed all *Logfile* names to *LogFile*
  in hades.gui.Console; also changed the corresponding 
  SetupManager property to "Hades.Console.LogFileName"

17.07.02

N
  added the "implements Assignable" specification to all
  register simulation models in hades.models.rtlib.register.
  This means that you can now use assign() calls to update
  the register output values, for example from StimuliParser
  input files or interactively from the Jython shell:
  "PC <= 0xAFFE" or "accumulator.assign( 123, 4.0E-9 )"

N
  implemented assign(String value, double simTime) in class
  hades.models.rtlib.GenericRtlibObject. The method schedules
  the specified output event on the 'vectorOutputPort' pin
  and also schedules a WakeupEvent to update the internal
  'vector' variable at the specified time.

  Most standard RTLIB simulation models can now be made
  "Assignable" by just implementing hades.simulator.Assignable.

N
  changed the editor versionString (0.90), mainly to better allow
  tracing bug information 

N
  changed hades.models.Design.checkDesign() to take a boolean
  parameter whether also to highlight errors in the schematics.
  Added corresponding menu items to hades.gui.EditFrame and
  callbacks to hades.gui.Editor.

16.07.02

N
  new implementation of VhdlSimKernel.deleteAllEventsFromSource,
  using new inner classes DeleteAllEventsFromSourceCommand and
  NOP (no operation). The new implemenation executes in the 
  simulator Thread and should therefore be thread-safe. Also, it
  deletes events from both the event list and the pending events.

B
  finally checked why the hades.models.dcf77.Dcf77Sender is
  resistant against deleting itself from a Design. It turns out
  that this is due to a major design flaw in the current handling
  of WakeupEvents:  The scheduleWakeup() method in SimKernel does
  never set the "source" field in SimEvent, which implies that
  deleteAllEventsFromSource cannot handle WakeupEvents at all.

N
  Very ugly hack to Dcf77Sender to work around the problem
  mentioned above: the sender now checks whether it finds itself
  in the parent Design before scheduling events or updating its
  display.

N
  refactoring of the hades.models.flipflops class hierarchy. 
  Made the Q/NQ output ports members of GenericFlipflop and
  added the assign() method there to support the Assignable 
  functionality for the gate-level flipflops.

15.07.02

F
  added "$debug$" production to StimuliParser grammar, use debug
  flag to control info and error messages.

N
  partial SimKernel rewrites; try to clean-up the Thread issues.
  Added test design __pause_test.hds, seems to work now with
  VhdlSimKernel... 

  Also re-enabled the SimControlPanel runForButton via the new
  "Hades.Simulator.EnableRunFor" SetupManager property.
 

N
  more tutorial updates; finally documented core DesignManager
  functionality.

12.07.02

N
  new TTL 74LS590 synchronous counter (with output registers),
  based on hades.models.flipflops.JkffMetastable.

N
  more tutorial updates, including rudimentary explanations of 
  a Hades build setup (installation chapter) and DesignManager
  functions and usage (writing components).

10.07.02

F
  wrote and re-wrote dozens of class documentation entries all
  over the hades.models, hades.utils, and hades.simulator 
  package tree. 


N
  updated the tutorial: added StimuliGenerator, StimuliParser,
  DesignHierarchyNavigator, Assignable, several index entries,
  new screenshots, ...

09.07.02

N
  added new utility classes hades.models.rtlib.IpinVectorLarge 
  and OpinVectorLarge, which provide a larger graphical Symbol.
  Needed to avoid the current redrawing issues when binary
  representation is selected (the numbers often extend beyound 
  the Symbol bounding box for IpinVector and OpinVector).

  For compatibility with existing designs, the existing classes
  were left unchanged. Also, their more compact Symbol is usually
  big enough for both decimal and hex-formatted numbers.

F
  re-generated the whole classdoc tree and classdoc.zip

F
  tried to understand the SimKernel.pauseSimulation-deadlock
  issues. This is now really urgent, because StimuliParser
  needs to call pauseSimulation() from the simulation Thread
  itself. No solution short of a complete rewrite, yet.

08.07.02

N
  rewrote the grammar specification and most of the functions
  of StimuliParser. Among others, added the "wait until" and
  "pause" statements, allow assignments for both Signal and
  SimObject (=Assignable) targets, use DesignHierarchyNavigator.
  
  Also changed StimuliParser.main() to accept two parameters,
  a Design resourcename and a stimuli filename, to allow for
  standalone parser testing.

03.07.02

N
  new utility class hades.utils.DesignHierarchyNavigator for
  efficient access to Signals and SimObjects via relative or
  fully qualified hierarchical names.

N
  implemented assign() in hades.models.rtlib.io.IpinVector.
  Checked whether a simple redesign would allow to implement
  assign() in GenericRtlibObject.
  

N
  added the hades.simulator.Assignable tagging interface to mark
  SimObjects that fully support the assign() method. Corresponding
  changes to several hades.models.io classes.

02.07.02

N
  re-designed hades.models.io.DiodeSwitch, now with consistent
  state-encoding, fixed evaluate(), added the assign() method

N
  implemented assign() in hades.models.io.PulseSwitch and
  hades.models.io.HexSwitch, major cleanups in the latter class.
  (Still does not work for mirrored HexSwitch symbols, however).

01.07.02

N
  implemented assign() in hades.models.io.Ipin

N
  finally decided a substantial re-write for the major input
  SimObject's with support for external stimuli with matching
  GUI updates. The latter will be implemented via WakeupEvents
  and wakeup() calls, as introducing a new (third) kind of events
  just for the purpose of GUI-updates seems overkill. 
  In order to keep the GUI consistent, the value to be shown
  will be supplied in the WakeupEvent delivered to wakeup().

  The following simulation components will be upgraded ASAP:
  hades.models.io.Ipin, PulseSwitch, HexSwitch, DiodeSwitch,
  and hades.models.rtlib.io.IpinVector.

  For sake of a simple API and the ease of writing stimuli,
  a new method assign( String value, double simTime ) 
  will be added and used by all components. For example,
  you will be able to write:

  ipin.assign( "X", 1E-9 );
  ipin.assign( "0", 4E-7 );
  vector.assign( "0xaffe", 0.3 );

  Note that this change affects the class signatures of some
  classes (which now implement Wakeable), and that the wakeup()
  method in IpinVector changes.
  

26.06.02

N
  more work on StimuliGenerator (parser and grammar updates,
  enabled flag, fixes)

F
  changed hades.models.Design.addComponent to *not* call
  simobject.elaborate() any more. It should suffice if
  a new simulation component is elaborated later from 
  SimKernel.elaborate().

  However, there might be some SimObjects which rely on the
  old behaviour for their GUI initialization. Needs to be
  checked.
  

25.06.02

F
  handle 0 (zero) signal drivers same as a single driver in
  hades.signals.SignalStdLogicVector. This covers the case
  where the signal value is set directly via external events,
  for example by the StimuliGenerator or a Jython script.

N
  attempts to define a new clean API to assign input component
  (Ipin, PulseSwitch, HexSwitch, IpinVector, etc.) values 
  from StimuliGenerator or scripts. This should not be based
  on the Ipin.setValueAtTime hack, and provide a uniform API
  for (at least) StdLogic1164, StdLogicVector, Strings, Integers,...


N
  new simulation component hades.models.io.RomDiode, useful
  for demonstrating ROM and PLA like structures.

24.06.02

N
  first integration of StimuliParser.jj into new package
  hades.models.stimuli, corresponding makefile updates.
  Also first version of hades.models.stimuli.StimuliGenerator,
  which mostly works but needs better handling of finding
  components and signals in hierarchical designs.
  

23.06.02

N
  started working on the StimuliParser, using JavaCC to allow
  for a "VHDL"-like stimuli description

18.06.02

F
  check SecurityManager before calling System.exit in 
  hades.gui.Editor (applet compatibility)

F
  VhdlSimKernel now sets the "shouldStop" flag whenever an
  InterruptedException is caught in its sleep() method. 
  This means that the simulation Thread is correcty terminated
  in reaction to a JVM interrupt() call. 

F
  better Thread management in hades.gui.SyncRedrawTimer.
  Also, the Thread will now terminate when interrupted via the
  JVM (improved applet compatibility).

N
  slightly better formatting for hades.gui.PropertySheet; 
  resizing will now resize the textFields, but not the labels.

N
  new utility classes hades.models.io.Constant, Constant0,
  Constant1, ConstantH, ConstantL, ConstantW.

N
  new utility editor method "zoom out 0.9" and "zoom in 1.1",
  corresponding code taken from jfig.gui.PresentationViewer

17.06.02

I
  several (minor) jfig changes, see jfig CHANGES

F
  handle InterruptedException and check isInterrupted() in 
  classes hades.gui.SimControlPanel$SimTimePanel and 
  hades.utils.ToolTipManager 

14.06.02

F
  fix VhdlSimKernel.collectEvents() to avoid the double-event-
  evaluation-when-scheduling-at-time=now-problem...

F
  checks for SecurityManager in jfig.utils.SetupManager and
  jfig.gui.PropertiesViewer.

N
  improvements to RemoteIpin and RemoteOpin, also added 8-port
  subclasses RemoteIpin8 and RemoteOpin8

12.06.02

N
  better applet compatibility in jfig.utils.SetupManager; we now
  access individual system properties to avoid getting the null
  return value from System.getProperties due to the applet 
  security restrictions.

N
  use PPMWriter instead of GIFEncoder in WaveformViewer 
  (to avoid both license issues and applet problems in MSIE/jview)

N
  new class PrintBrowserPropertiesApplet, also
  deployed to tech-www for browser testing...

11.06.02

F
  callback fix in hades.styx.WaveformViewer (update waves)

N
  started reworking the EditorInApplet class, adding new
  applet parameters, Netscape checks, ...

08.06.02

N
  started exploring the org.mortbay.html utility package to auto-
  generate example applet web-pages.

07.06.02

F
  added missing write() and initialize() methods to classes RemoteOpin 
  and RemoteIpin.

06.06.02

N
  new classes hades.models.io.RemoteOpin and RemoteIpin, meant to
  interface Hades components to remote servers. The current
  implementation prototype uses a very simple URL protocol to
  encode parameters into a URL and parses the HTML data returned
  by the server. 

05.06.02

B
  found a new subtle bug in all variants of SimKernel, which
  may result in wrong simulation behaviour whenever new simulation
  events are scheduled with the current simulation time (found while
  writing and debugging RemoteOpin). Basically, VHDL-style delta
  cycles are not working properly. Needs to be fixed.

03.06.02

F 
  changed hades.models.meta.Label to update its Symbol bounding box
  after both text and attribute changes to its textObject member.
  This should fix the bug where the Hades editor would still use
  and display the previous bounding box after editing a text Label.

F
  added new load methods with (Object,String) arguments to classes 
  PicEprom and PicEEprom. These methods allow to pass through an
  Object argument to class DesignManager, which means that the
  Pic16C84.initialize (and the ShowPic2 GUI) can now use the new
  DesignManager API without further changes to the PIC core
  class hierarchy. 
  Update Pic16C84, Pic16C84Debug, FastPic16C84, SmartPic16C84 to
  use the new method.

F
  several fixes to the PIC16C84 design examples; most notably, 
  changed all .rom/.hex file references to use relative names
  starting with "/hades/..." Also deleted unused examples, unused
  signals, better component names, etc.

F
  minor cleanups in hades.models.pic.PicEprom and PicEEprom,
  corresponding changes in Pic16C84, FastPic16C84, SmartPic16C84

B
  bug/feature:  neither variant of the Pic16 core saves the EEPROM
  data file name to the Hades design file. That is, the EEPROM
  contents currently have to be re-loaded via the GUI or via a
  script every time the design file is loaded.

24.05.02

I
  EWME-2002: self-checking concept

23.05.02

I
  EWME-2002: applet presentation

06.05.02

N
  more tutorial (VHDL export)


03.05.02

N
  more tutorial work (hierarchical designs rewritten)


29.04.02

N
  and more ... (nutshell)

22.04.02

N
  more tutorial work (Java and Jython scripting)

15.04.02

N
  and more tutorial work (model libraries, waveforms, scripting)

12.04.02

N
  more tutorial updates (chapter model libraries)

09.04.02

F
  fixed hades.simulator.SimKernel.checkClearWaveforms to avoid NPE
  when editor is null (during batch-mode simulation).

08.04.02

N
  and more tutorial updates 

03.04.02

F
  changed hades.models.rtlib.io.IpinVector to fall back on the
  updateSymbol method and LabelFormatter architecture from
  GenericRtlibObject. This means that a IpinVector will now repaint
  its correct value after re-enabling RtlibAnimationFlag and
  a full redraw. Previously, the IpinVector symbol would only be
  updated on the next value change on the IpinVector.

N
  added a new interface hades.symbols.ColorSource and the 
  implementation DIN_IEC62_ColorSource. Changed hades.symbols.Label
  to use ColorSource (if set on the Label) and GenericRtlibObject
  to set ColorSource for the valueLabel.
  This saves the color-setting stuff in GenericRtlibObject.
  udpateSymbol() and also gets the color right after re-enabling
  RtlibAnimation.

N
  first text for the "library" chapter in the new tutorial 
  

02.04.02

N
  Kurzanleitung "pre-release" Version

B
  currently, IpinVector (and OpinVector) do not behave gracefully
  when RtlibAnimation is switched off and then switched on again,
  because the valueLabels are never updated to the current value.
  This needs to be fixed (via the TextSource mechanism already
  used for most other rtlib components).



11.03.02

I
  changed the .hadesrc defaults for EnableSelectionMenu to false, 
  as users complained about the missing functions. 
  Also set EnableDebugMenu to false for the "end user" distribution.

N
  KE15 Kurzanleitung started

08.03.02

F
  fixed Signal.splitIntoSubgraphs to initialize the "visible" status
  flag in the newly-created split signals.
  This fixes one long-standing GUI bug.

07.03.02

F
  some minor refinements to the quick-reference card.

F
  look into the "signals sometimes ignore glow-mode during editing"
  bug issue...

06.03.02

N
  complete rewrite of the (German) quick-reference card finished.

04.03.02

F
  documentation overhaul, tutorial and quick-reference card.

22.02.02

N
  support for "interactive" method calling via reflection and a
  StringDialog. See hades.gui.Editor.doCallMethod and inner class
  DoCallMethodListener. Also added corresponding MenuItem 
  EditFrame->Menu->Special->Call...

F
  changed hades.gui.Editor.setRtlibAnimationStatus to also change
  the SetupManager property "Hades.LayerTable.RtlibAnimation",
  in order to keep the GUI (EditFrame CheckboxMenuItem) and the
  objects in sync.

N
  prepare for using the org.mortbay.jetty.html package to auto-generate
  applet HTML pages.

N
  changed the default behaviour of IpinVector to avoid a frequent
  usage problem. Now, the whole symbol of the IpinVector is active
  to mouse clicks with the following behaviour:
  normal click:   increment value 0 : 1 : 2 ... maxvalue : 0 : 1
  shift+click:    decrement value 0 : maxvalue : maxvalue-1 ... 2 : 1 : 0
  cntl+click:     generate UUU : XXX : ZZZ values

20.02.02

N
  new class hades.models.rtlib.register.RegWithInitialValue

F
  fix hades.models.register.Register.show() to check whether a 
  valid Symbol is available, to avoid NPEs when using Register
  in a subdesign. a subdesign.

F
  fix hades.models.rtl.ROM_1Kx8.parse() to allow "#" comment lines
  in the ROM data file. 

N
  funstuff:  MakeIncrementROM, MakeBitWeightROM

19.02.02

N
  new classes hades.models.rtl.ROM_256x8, ROM_64x8 and symbols

18.02.02

N
  new class hades.models.rtlib.register.LFSR

N
  new classes (and symbols) for hades.models.register.LFSRAnalyzer24
  and LFSRAnalyzer32

N
  KE15 testbenches, using LFSRGenerator, LFSRAnalyzer and
  ClockGenWithAutoStop

15.02.02

N
  some more KE15 stuff

14.02.02

N
  custom popup menu structure for the KE15 exercises

N
  New classes hades.models.hagen.SimpleShiftRegister,
  hades.models.hagen.ROM_8x8 

N
  new package hades.models.hagen, put the Adder8 and Mux8 (Mux9)
  subdesign there.

F
  some fixes in hades.models.register.XXX. All of those classes
  stored references to external StdLogic1164 objects in the (wrong)
  assumption those objects were immutable. 
  The current implementation uses an additional copy() to get
  local objects. It would be slightly faster to store integers
  instead of the full objects.

13.02.02

N
  new classes hades.models.gates.Or6, hades.models.gatter.Or4,
  ..gatter.Or6, ..gatter.And4, ..gatter.And4Neg2, ..gatter.Demux14,
  used for the Univ. of Hagen "KE15" exercises


12.02.02

N
  some more tutorial work 

11.02.02

F
  changed hades.gui.Editor.actionPerformed() to check for null
  action commands, which unfortunately are used by MS jview 
  MenuShortCuts. If a null action command is found, we check
  for a MenuItem source and call getLabel() on the MenuItem...

N
  wrote the "applet installation" section for the tutorial,
  first text and RunHadesDemo source in the "scripting" chapter.

10.02.02

N
  mostly complete installation chapter in the tutorial

08.02.02

F
  fix ports initialization in hades.models.flipflops.DffrMetastable

F
  use trailing-spaces-hack in SimControlPanel.SimTimePanel.timeLabel
  to avoid premature cropping of the displayed time...

07.02.02

N
  wrote tutorial "demos" chapter, several tutorial FAQ updates

06.02.02

N
  more tutorial work, FAQ and installation chapters

05.02.02

F
  changed hades.utils.NameMangler.encode() and decode() to return
  null output values for null arguments, instead of throwing
  NullPointerExceptions

F
  new version number for hades.gui.Editor

N
  many more entries for the tutorial FAQ section,
  first documentation about .hadesrc in the FAQ

02.02.02

N
  full rewrite of the tutorial started in earnest

01.02.02

F
  don't add the useless (for the time being) execute-single-event-button
  to SimControlPanel.

31.01.02 

F
  handle null labelFormatter in GenericRtlibObject.getFormattedValue

F
  use slightly smaller radius for hades.gui.TrafficLight, to fit
  the default editor SimControlPanel to a 800x600 screen size.

N
  changed the layout of hades.gui.SimControlPanel and added 
  inner class SimTimePanel to display the current simulation time.
  Currently, the SimTimePanel is updated once per second, to 
  provide feedback about simulation status.

F
  hack to fix the "add probes" callbacks in hades.gui.EditFrame.
  Because the "add probes" sub-menuitems used the same labels as
  the "remove probes" sub-menuitems, the former callbacks were
  overwritten with the latter callbacks :-(  The quick fix consists
  of a few trailing spaces in the "add probes" menu item labels,
  to make the callbacks unique.

F
  print a warning message in hades.gui.Editor.addCallback() when
  overwriting an existing callback...

30.01.02

F
  fixed hades.models.special.SerialTerminal to transmit input
  characters even when the "enable_log" flag is off. This bug
  obviously survived for more than two years...

N
  added hades.gui.Editor.checkAllCallbacks method as a very basic
  check that all registered callback methods do exist. Note that
  the test does not call the callbacks, and neither does it check
  whether the callback arguments are correct.

N
  changed hades.gui.Editor to use the new ObjectCanvas and dynamical
  callbacks for the ObjectCanvas popup menu. The default popup menu
  description is loaded from "/hades/gui/PopupMenu.txt", but this
  resource can be changed via SetupManager property 
  "Hades.Gui.Editor.PopupMenuResource"

N
  rewrote hades.gui.ObjectCanvas, which now builds its PopupMenu
  dynamically from a user-specified resource file and uses reflection
  to set the Editor callback methods for the MenuItems.

  This offers no immediate advantage in functionality of the popup
  menu, but makes for a *lot* cleaner code in both ObjectCanvas
  and Editor. Also, it makes it very easy for users to modify
  the popup menu.


28.01.02

F
  wrote hades.models.flipflops.DffrMetastable, which was missing
  but already referenced by some of the TTL 74xx series models.

F
  fixed hades.utils.Parser to use NameMangler.decodeUnicodeEscapes
  after reading the (mangled) top-level Design name.

N
  several screenshots on Windows and Linux/KDE for the new tutorial

23.01.02

F
  removed the superfluous getSymbolResourceName() methods from dozens
  of hades.models.xxx.YYY classes.

N
  changed all example TTL 74xx series gate-level simulation models
  to use DffMetastable and JkffMetastable instead of Dff and Jkff.
  This was necessary to simulate several "legacy circuits" which
  did hardwire the flipflop reset inputs.

  Note that multiple simulation runs might give different results
  when the JkffMetastable (or any of the other metastable flipflops)
  is used in a circuit.

F
  rewrote EditFrame and Editor to use the new callback API for
  all EditFrame menu events. Note that this might have introduced
  some "dead" menu items right now...

N
  changed hades.gui.Editor and hades.gui.EditFrame to use a 
  reflection-based architecture to handle ActionEvents. 
  This allows to add event Editor callbacks without having to add
  each single one manually.

  Similar to the architecture used in jfig ModularEditor, we use
  a Hashtable __callbackTable to map "action event" Strings to
  editor methods. A second Hashtable is used top map to (optional)
  arguments for the corresponding method.

  Editor now also provides the addCallback( String eventName,
  String handlerMethodName, Object optionalArgument ) method 
  which allows to register new handlers at runtime.

22.01.02

N
  began work to access some demo designs via the editor help
  menu. Also corresponding re-structuring of the "tutorial"
  help menu items.
   

N
  several attemps to get DesignManager to run with JDK 1.3.1 on
  Windows ME. Currently, opening files seems to work reliably,
  but calling the AWT FileDialog in SAVE mode instantly crashes
  the JDK JVM.

F
  fixed DesignManager.checkAndAddFilenameExtension to actually
  add the extension when enabled via SetupManager (test was
  inverted).

F
  fixed DesignManager.getOutputStream to replace slashes ('/')
  with java.io.File.separatorChar in the output stream name.
  Also replace slashes before calling fileDialog.setFile().

  Introduced the "Hades.DesignManager.VerboseMessages" property
  to control (verbose) messages from the newer DesignManager
  functions...  Default value is currently "true", but the
  DesignManager will read the property at runtime, so it is 
  possible to change the setting via "show properties".
  

21.01.02

F
  always create a new FileDialog in hades.manager.DesignManager.
  checkCreateFileDialog to work around the JDK 1.3.1 Windows
  crash-when-reusing-a-FileDialog bug. This also required to 
  keep an instance variable for the (dummy) Frame.

F
  changed hades.symbols.Symbol.initializeFromResource to call
  DesignManager.getInputStream, as this allows us to profit
  from the newly made changes to DesignManager.

  Note that this breaks third-party simulation models which
  override (the working) getSymbolResourceName from SimObject
  and return a relative instead of the fully-qualified 
  symbol resource name. Please change those models to return 
  a String like "/com/foo/baz/Mux.sym" instead of "Mux.sym".


N
  new implementation of DesignManager.lookForInputStream(), which
  now checks for the special case of Hades resource names, when
  CLASSPATH is invalid or null. In that case, lookForInputStream
  steps up through the subdesign hierarchy, looking for a Design
  which was loaded from a non-CLASSPATH source and uses that to
  construct a valid filename. This allows to load all current
  Hades examples, even if CLASSPATH is not set. The only requirement
  is that the directory structure for the example designs is kept
  intact.

F
  update Signal.renameAfterDriver to check for "special" drivers 
  (currently hades.models.io.Ipin) and generate more appropriate names 
  in those special cases. Other candidates for special treatment
  are ClockGen, PowerOnReset, and IpinVector, but those are not yet
  implemented.
   

I
  some documentation updates. Among other thinks, collected the
  current list of Hades related BSc. and MSc. theses (Postscript),
  see /hades/doc/theses.

F
  fixed jfig.utils.SetupManager.loadGlobalProperties to allow 
  leading slashes ("/hades/.hadesrc") in the filename for the global
  properties resource file.

18.01.02

F
  several minor makefile fixes (e.g. pack .hadesrc into classzip and
  srczip, add new packages to make classdoczip, etc.)

N
  added hades.signals.Signal.renameAfterDriver()

N
  added hades.gui.Editor.renameToplevelSignalsAfterDrivers() and
  isDefaultSignalName().  No user-interface hook yet.

N
  new class RunHadesDemo which shows how to control and script the
  Hades editor, simulator, and waveform viewer from Java code.

N
  added new "-encode" and "-decode" options to the main() method in
  hades.utils.NameMangler, allow to encode and decode strings via
  the command line (for example for use in symbol Label strings or
  design names).

F
  added the (missing) symbol for hades.models.gatter.Inv, also added
  hades.models.gatter.InvVertical with a top-to-down oriented symbol.

17.01.02

B
  should change hades.models.Design.getEscapedResourceName() to
  return the relative instead of absolute path names, in order to
  allow moving and copying of design directories.

N
  new package hades.models.gatter with classes And2 .. Xor2, which
  are subclasses of the corresponding models in hades.models.gates
  without additional functionality. The difference is that the new
  classes have the DIN/IEC style symbols. While those symbols are
  not often used in CAD/EDA software, they are frequently found
  in German textbooks.

  Note that the symbols for hades.models.gatter.XXX and hades.models.
  gates.XXX have the same size, port names, and port locations.
  This allows to change the symbols for an existing design easily.
  Just change the gate package names in the design ".hds" file.
   

16.01.02

B 
  Note that hades.symbols.Label.writeAsResource will not currently
  write font index, point size index, and color index.

N
  improved hades.symbols.Label.initialize to include support for
  parsing the Label font index, point size, and color index.
  This means much greater flexibility when designing Hades symbols,
  without breaking compatibility. The new format is:
  hades.symbols.Label x y align font_index size_index color_index text
  
F
  call NameMangler.encodeWithUnicodeEscapes and decode... from
  hades.symbols.Label.writeAsResource and initialize.  This allows
  Label object texts with spaces and special chars in them.

N
  removed all references to "hades.cnf" configuration files for
  SetupManager and use ".hadesrc" instead. This is still a 
  problematic file name on Windows platforms (e.g. Windows XP
  explorer refuses to rename a file to such name), but it
  avoids conflicts with Windows modem setup files.

  SetupManager should probably also check for "_hadesrc" files 
  on Windows systems.

F
  fixed hades.utils.FigWriter.write_fig31_file to also call
  write_fig31_pseudocolors.

N
  added jfig.objects.FigAttribs.setLineColor and setFillColor.
  These utility methods take a java.awt.Color argument and create 
  a new FIG user color if the requested color was not registered
  previously.

  Please use these methods when setting a user-defined color
  for a Symbol or Symbol member. This is much simpler than the
  previous solution, at the cost of an additional hashtable
  lookup in jfig.gui.ColorCache.

15.01.02

N
  added support to save the *edited* properties from PropertiesViewer
  instead of the preloaded values. This should be much more user
  friendly, even if it can trigger the occasional exception due to
  illegally formatted inputs.

N
  new class hades.gui.PropertiesViewer to view all Java, jfig, Hades 
  SetupManager properties. The class also includes support to write
  user- and local-working-directory properties files. 
  Corresponding fixes in jfig.gui.PropertiesViewer to allow proteced
  instead of package access to variables.


14.01.02

N
  call DesignManger.checkAndAddFilenameExtension() from
  hades.gui.Editor.doSaveFileAs() and hades.gui.MemoryEditorFrame.
  saveDataToFileAs().

N
  added checkAndAddFilenameExtension to hades.manager.DesignManager.
  When enabled via the SetupManager "Hades.Manager.AutoAddExtension" 
  property, DesignManager will automagically append the appropriate
  extension to the user-selected filename for "save as" operations.

N
  new inner class ShowSignalNameListener in hades.styx.WaveformViewer
  to display the full (hierarchical) signal name of the selected
  waveform (via mouse position) in the WaveformViewer. This greatly
  improves the usability of the waveform viewer for all designs with
  many signals of more than one level or hierarchy...

F
  some changes to the hades.styx API:  added getFullName/setFullName
  to Waveform, use default- (zero-argument) constructors for
  Waveform and its subclasses, added range-checks to WaveCanvas.getName
  and getFullName methods, etc.

F
  more renaming and cleanups in all classes of hades.styx.
  Also added comments and updated the Styx README.

11.01.02

F
  cleanups and fixes in hades.styx.WaveformViewer.clearWaveData,
  updateTrafo, actionPerformed.

N
  automatically clear old waveforms when (re-) starting a simulation.
  A good place to trigger this action is during the elaboration phase
  of a new simulation, because this keeps the old data visible as 
  long as possible. 

  Therefore, hades.simulator.SimKernel.elaborateComponents now calls
  the new SimKernel.checkClearWaveforms() method directly after
  elaboration of the design. Unfortunately, SimKernel has no direct
  reference to the editor and its waveform viewer. The only path
  is via the design.getEditor() method, which should return a valid
  reference.

N
  added support for "delayed" re-enabling of the ObjectCanvas popup
  menu, to avoid the annoying conflict of the popup menu behaviour
  on Windows platforms and the right mouse button "cancel" function 
  used by some editor commands.

  The fix consists of the setEnablePopupOnNextMouseRelease() method
  in hades.gui.ObjectCanvas and the corresponding methods in
  hades.gui.Editor and the concerned hades.gui.XXCommand classes.

N
  new class hades.models.flipflops.JkffMetastable. This is a "legacy"
  flipflop which generates random 0/1 values instead of X/U values
  for undefined input signal combinations. This flipflop should not
  be used for simulation of new designs, but might be helpful for
  the simulation of "legacy circuits" like the TTL series counters
  with hardwired reset inputs.

  Note that multiple simulation runs might give different results
  when the JkffMetastable (or any of the other metastable flipflops)
  is used in a circuit.

F
  use NameMangler.encodeWithUnicodeEscapes() when writing instance 
  names to allow spaces etc. in hades.models.Design.write() and 
  decodeUnicodeEscapes in hades.utils.Parser.parseComponent().
  (Bug reported by Roland).

N
  new class hades.models.io.Iso8859Display (written by R. Illig)


10.01.02

N
  today begins the "great Hades overhaul" ...

F
  fixed two typos in the T3-1 lab course documentation:  changed the
  name of the "additional implementation registers" from MOE/MWE
  to nOE/nWE (Abb. 2), fixed the ALU opcode numbering (Abb. 4).

21.12.01 

N
  added support for either "Netscape/MSIE" or "traditional FileDialog"
  style to select file/URL names in hades.manager.DesignManager.
  Set "Hades.DesignManager.UseSelectDialog" to "true/false" to select
  the desired behaviour. Most of our test users prefer the traditional
  setting (=false).

F
  use repaint instead of paint(getGraphics()) in hades.gui.ImageButton

N
  changed all flipflop models in hades.models.flipflops to allow
  weak StdLogic1164 input values (0L,1H) on data and clock inputs.

13.12.01

N
  added a WindowCloser to hades.gui.SelectFileOrURLDialog to keep
  the Windows users happy.

N
  added a WindowCloser for hades.gui.ExportOptionsDialog to 
  hades.utils.Exporter (which manages all event handling for the 
  ExportOptionsDialog).

03.12.01

F
  fix hades.utils.vhdl.VHDLWriter to use the new DesignManager API
  (Bug uncovered by using new jikes for a total-recompile).


F
  fix non-JLS conform accesses to non-constant case-statement labels
  in hades.gui.CanvasScroller, hades.styx.WaveInteger and
  hades.styx.WaveStdLogicVector. This should also keep jikes happy.

27.11.01

F
  some more (this time, minor) fixes in the T3-cource documentation.

16.11.01

N
  more rewriting and fixes in the new T3-course documentation.
  Also changes in the T3 processor example designs.



12.11.01

F
  fixed wrong default extension (.sym instead of .hds) 
  in hades.gui.Editor.doSaveFileAs().

N
  updated hades.models.mcore.DcoreDisassemblerEditorFrame to use the
  current file name for openFile, mergeFile, and saveDataToFileAs().
  This uses the getDefaultResourceName() utility method to access the
  memory's current resource name.

N
  update hades.models.rtlib.memory.MREditorFrame.<<init>> to preset
  its 'resourcename' member variable from the memoryObject's resourcename
  for later use in openFile, mergeFile, and saveDAtaToFileAs().


09.11.01

F
  changed hades.gui.SelectFileOrURLName() to always create a new
  FileDialog (instead of re-using the previous one), in order to avoid
  spurious crashed on JDK 1.3.01 on Windows 9x. The new implementation
  seems to work on Linux and Windows with the JDK and the Microsoft VM.

N
  updated the example designs for our "T3" lab course in /hades/t3
  to match the current exercises. Also create new subdirectories
  /hades/t3/programs and /hades/t3/microcode, and put some simple
  test programs and the empty (but fully commented) microcode sample.

N
  finally implemented the first trivial bits of "lookForInputStream"
  in DesignManager. When called with a relative filename and a non-null
  SimObject, DesignManager now tries to find the SimObject's Design,
  the Design's resource name, merges that resourcename with the relative
  name, and calls getInputStream( null, mergedname ) to do the dirty work. 
  The null-parameter in the call avoids a possible infinite recursion.
  See DesignManager.getInputStreamFromRelativeName() for details.

F
  added checks for null filename in DesignManager.selectFileOrURLName
  to avoid NullPointerExceptions

F
  rewrote the DesignManager.getFilename() and getDirectory() methods
  to avoid calling unnecssary JDK 1.2+ methods. DesignManager is now
  again compatible with JDK 1.1.x and the Microsoft VM.

20.09.01

F
  use DesignManager in hades.models.mcore.DcoreDissassemblerEditorFrame
  and hades.gui.MemoryEditorFrame, hades.models.fsm.EditFrame,
  hades.models.fsm.FsmWrapper, hades.models.rtl.RAM/ROM*,
  hades.models.rtlib.memory.MREditorFrame, hades.models.pic.Pic*,
  etc.

F
  removed by-now unused class hades.utils.FileDialog

19.09.01

F
  minor fixes, symbol for hades.models.io.RandomBitGenerator,
  etc.

18.09.01

N
  more DesignManager cleanups

17.09.01

N
  more DesignManager API changes, first implementation of "error-
  tolerant" searching for files and URLs

F
  use new DesignManager API in other classes: converted
  hades.utils.DidYouKnowFrame,
  ...

F
  removed redundant getSymbolResourceName methods in several dozen
  hades.models.* classes, relying on the implementation in SimObject
  instead.

F
  improved class documentation for the simulation models in the
  hades.models.ttl74 package.

14.09.01

F
  use new DesignManager API in hades.gui.Editor

12.09.01

* operation

10.09.01

N
  new class hades.gui.SelectFileOrURLDialog in preparation for the
  pending Designmanager rewrite.

07.09.01

F
  more class-documentation updates all over hades.models.xxx 
  and across hades.symbols

N
  new classes and symbols hades.models.register.LFSRGenerator24
  and hades.models.register.LFSRGenerator32

N
  new class hades.models.io.RandomBitGenerator

06.09.01

F
  removed by-now-unused class and source hades.manager.ImageCanvas

F
  next attempt to improve DesignManager, in order to allow CLASSPATH-
  tolerant loading and saving of design files

F
  updated and created many class documentation entries across the
  whole Hades source tree.
  Note: due to changes in SimObject, GenericGate, and GenericFlipflop,
  it may be necessary to recompile the whole Hades-tree.

N
  started writing hades.models.io.ClockGenWithAutoStop

28.08.01

F
  improved the Hades selftest / LFSR signature-analysis example,
  new directory hades/examples/webassign. Updated the Jython
  driver script, added a README.

F
  fixed hades.gui.Editor.setGlowMode() to update the state of the
  "glow mode" Editor'Menu'CheckboxMenuItem as well.

F
  fixed the LFSRGenerator/LFSRAnalyzer demo design adder-testbench
  to drive the LFSR reset signals. Also prepared a variant with a
  gated clock to allow running standalone without the external
  "selftest.py" Jython script.

F
  fixed the missing ClassLabel entry in hades.models.register.
  LFSRAnalyzer8 and LFSRAnalyzer16


27.08.01

F
  fixed the symbol file for hades.models.ttl74.SN7405

F
  trace exceptions for "internal errors" in hades.gui.Editor 
  mousePressed() and keyPressed() methods

F
  comment in hades.signals.Signal explaining the "CoLa" bug 
  when (illegally) connecting to the top-level hierarchy connector ports
  on Ipin, Opin etc. from broken machine-generated .hds files.

F
  fixed "make gatelevelzip" to include NameMangler and the waveform viewer
  classes. This in turn required uncovered some remaining references
  to hades.utils.ValidName, which are now gone...

F
  documented where to improve getInputStreamXXX in DesignManager, in
  order to load input files even with not-fully-matching filenames.

24.08.01

N
  more tests in testsuite/simobjects/*

23.08.01

N
  wrote testsuite/simobjects/testSimObject.py to test basic functionality
  including configure() on SimObjects. Already found the first bugs
  on the fourth object tested...

F
  added getPropertySheet to hades.models.rtl.ROM_1Kx8 and
  hades.models.rtl.RAM_256x8

22.08.01

N
  added get/setLogfileName methods to hades.gui.Console

N
  first preparations for the Hades testsuite (which will use and
  require Jython)

21.08.01

N
  new class hades.models.meta.JythonScriptWrapper, which allows
  to execute Jython/JPython scripts during the simulator elaborate
  phase, e.g. to initialize other SimObjects in the same design
  or to show waveforms for selected signals.
  Note that the script currently has to be specified via a valid
  filename, not a resource name - due to Jython/JPython rescrictions,
  which should hopefully be resolved soon.

N
  work in progress to get more MIPS (IDT R3051) demos up and running.
  As a first step, trying to automate MemoryDispatcher setup.

F
  removed hades.models.meta.KvdWrapper: the KV-diagram applet 
  motivation (logic minimization demo) is not useful in a Hades
  simulation anyway...

20.08.01

N
  renamed (actually, copied) class hades.utils.ValidName to the better
  choice hades.utils.NameMangler while keeping the functionality.
  Also changed all hades.models.xxx classes to use NameMangler now.

N
  added two utility methods to hades.simulator.SimObject to allow better
  design management:
  boolean needsExternalResources() 
  String[] getExternalResources()

N
  added the needsExternalResources/getExternalResources methods to
  all hades.models.xxx. classes where appropriate.

F
  dozens of minor code and documentation fixes throughout the hades.models
  class hierarchy.

16.08.01

N
  added "move memory block" inner class to hades.gui.MemoryEditorFrame
  (note that this could also be called "copy memory block" right now).

01.08.01 .. 15.08.01

N
  major rewrite of the "T3" lab course exercises

23.07.01

F
  renamed Frill to hades.models.meta.Label, also minor code cleanups.

F
  another attempt to get ToolTipManager working reliably with different
  sized tooltips on several X11 window managers. At the moment, the
  code explicitly calls tipLabel.invalidate() and tipWindow.validate()
  to force a new layout of the tooltip. 
  Should implement a double-buffering for the tipLabel repaint...

19.07.01

N
  implemented the I/O stuff for hades.models.meta.Frill

18.07.01

N
  wrote the configure stuff for hades.models.meta.Frill via an
  interface to jfig.gui.EditTextDialog. 


16.07.01

N
  major website and documentation upgrade for jfig


13.07.01

F
  overhaul of the jfig.canvas.FigBasicCanvas redraw and grid-redraw
  algorithms. Should be JDK 1.4 beta compatible now.

19.06.01

N
  added menu item to toggle the Java2D "image rendering quality" hint
  to hades.gui.EditFrame and corresponding callback to hades.gui.Editor.
  Naturally, this works only when Java2D is available.
  Preset via the Hades.Editor.RenderQuality property.
 

18.06.01

N
  new class hades.models.meta.AudioPlayer, which allows to embed the
  basic hades.utils.AudioPlayer into Hades designs, and to control
  it via simulation events. This automatically also gives us the
  possibility to play sounds in sync with the "realtime" simulator,
  e.g. by connecting a power-on-reset component with the corresponding
  initial delay to the AudioPlayer.

N
  new classes hades.utils.AudioPlayer (GUI) and AudioFileLoader
  for minimal audio playback support via the JDK 1.2 applet methods.

N
  new minimal callback interface hades.utils.NameListener with a 
  single method nameChanged( String s )

F
  hopefully correct redraw strategy in hades.gui.ColibriCreateCommand.
  Also changed the editor to always calling ColibriCreateCommand instead
  of CreateCommand: this means that the user has manually to place a
  newly selected object (instead of using the popup menu position for
  the first object).

15.06.01

F
  AWT updates in hades.utils.ToolTipManager. In the hope that several
  of the JDK 1.1.4 workarounds are not longer needed (and won't help
  the Netscape VM anyway), we now use tipWindow.pack() again, which
  should result in correct-sized tooltip windows.

  However, unless the whole GUI is converted to Swing, the popup-windows-
  are-grabbing-the-focus-on-Windows problem is still a problem.

F
  updated hades.gui.EditorInApplet:  better exception checking in init(),
  added getParameterInfo() and getAppletInfo(), some formatting fixes.

F
  changed hades.styx.WaveformViewer.clearWaveData() to also reset
  the time transformation. This fixes the problems to zoom into
  a newly restarted simulation...

07.06.01

N
  added reset input to hades.models.register.LFSRGenerator and 
  hades.models.register.LFSRAnalyzer

17.05.01

N
  new class hades.utils.ISCAS89Converter to parse the original ISCAS'89
  benchmark circuit descriptions (.bench) and to convert them to Hades
  format (.hds and .sym).

  This seems to work for all of the original ISCAS89 circuits.

F
  changes in hades.models.Design to gracefully handle null Symbols: 
  the write method now simpley generates references to Symbols at the
  fixed position (0,0), which is suboptimal but at least runs.
  Similarly, createSymbol() sorts the input and output connectors by
  their index position in the Hashtables when no Symbol is found.
  Finally, moved the file I/O for the newly created Symbol to 
  hades.gui.Editor: we don't always want to save the new Symbol.

16.06.01

N
  changed hades.gui.SelectRegionCommand to handle whole-Signal selections.

N
  updates to hades.gui.DeleteSelectionCommand
   

15.05.01

N
  better support for object selection via new method findObjectAt()
  in hades.gui.Editor. This relies on changes in jfig.


14.05.01

F
  changed hades.gui.SelectObjectCommand to allow to select/deselect
  all visible objects on the editor canvas, not just SimObject Symbols.

10.05.01

F
  fixed the (harmless but very annoying) feature in DesignManager
  which resulted in resetting the current working directory after
  doing a "save as". Now, DesignManager just resets the filename,
  so it should still not overwrite a design accidentally.

F
  cleanups in the hades/examples-unihh/b-tutorium and b-tutorium-fnh
  example designs.
  

09.05.01

F
  better messages from hades.manager.DesignManager 

F
  better messages from hades.models.rtl.RAM/ROM* parse

F
  major overhaul and rewrite of the select/deselect commands.

F
  update to the popup-menu in hades.gui.ObjectCanvas

F
  fix symbol for hades.models.rtl.ROM_1Kx8

F
  fixes in all examples from hades/examples-unihh/b-tutorium: corrected
  GND/VCC connection, unconnected signals, off-grid objects, etc.



08.05.01

F
  renamed "cursor snapping" to "magnetic grid" in hades.gui.EditFrame.
  Also rearranged the menu items.

N
  new class hades.models.io.OpinWithLabel

F
  added useful getToolTip() method to hades.models.io.Opin

07.05.01

F
  fixed the cosmetic stacking order problem in hades.models.io.HexSwitch 
  symbol, introduced on 05.03.01

N
  new input switch hades.models.io.IpinStdLogic1164, which allows
  to generate all nine std_logic values (U/X/0/1/Z/L/H/W/D) 
  interactively. Simply click on the corresponding field in the
  switch symbol, or use <shift>+click to toggle through the values.
  Mirroring does not work on this SimObject.

F
  try to fix initialization problems with hades.gui.Console on some
  JVMs (like IBM JDK 1.3.0 for Linux).

04.05

F
  fixed background color and layout in hades.gui.AboutDialog

F
  fixed hades.signals.Signal to generate better (and much more readable)
  error messages for null SimObjects or null Ports

23.04.01

F
  long-overdue updates to hades/doc/README and hades/doc/FAQ.
  

N
  changed jfig to use X-splines introduced in xfig 3.2 instead of the
  older FIG 3.1 compatible splines. While this should not affect
  HADES directly, embedded FIG files with splines will be rendered
  a little bit differently that with previous versions of jfig.

17.04.01

F
  fixed a major parser bug in hades.models.flipflops.GenericFlipflip
  which resulted in lost pass/setup/hold time information.

03.04.01

N
  first signature based selftest: Testbench design adder-testbench.hds
  and corresponding script selftest.py

N
  first attempt at LSFR-based BILBO-type pseudorandom pattern
  generation and signature analysis for automatic selftest of
  circuits.

  Prepared base classes, 8-bit, and 16-bit implementations in
  hades.models.register.LFSRGenerator (-8, -16) and 
  hades.models.register.LFSRAnalyzer (-8, -16).

F
  added hades.gui.Editor.setAutoStartSimulation(boolean)

F
  Some cleanups in the hades.jpshell.JPShell initialization code,
  to improve window manager compatibility. 
  Also added the JPShell sources to the makefile.

F
  Removed unused and unneccessary function deleteSignalFully from
  hades.models.Design


02.04.01

F
  several fixes and cleanups in the /hades/examples/dcf77 designs,
  e.g. better signal and instance names, improved hierarchy,
  new toplevel design. Also removed some by-now-unneeded test
  inputs from dcf77block.hds. Added a README.
  
N
  new gate-level example /hades/examples/bilbo/bilbo4.hds for
  a 4-bit BILBO register. This allows to visualize the four
  functions of the "built-in logic block observer":
  parallel D-register, shift-register, pseudorandom pattern
  generator, signature analysis.

F
  fixed hades.models.FigObject and hades.models.meta.KvdWrapper
  (which is still incomplete) to adapt the recent SimObject
  getSymbolResourceName() change.

01.04.01

N
  changed hades.utils.vhdl.VHDLWriter to actually use a classmap
  file, if one is specified.

N
  experiments to speed up gate-level simulation.
  Added the last_insert_event stuff to hades.simulator.EventList
  with corresponding changes to insert() and deleteFirst() methods.

  Also replaced several EventNode accessor methods by direct field
  accesses in hades.simulator.EventList. 

  Both changes together result in almost 25% speed increase for the
  DCF77 gate-level simulation example on my K6-400 with JDK 1.3 Hotspot.
  Seems that Hotspot does _not_ inline even trivial functions...

F
  fixed hades.models.io.ClockGen to not generate the initial "X"
  event when the t_initial parameter was 0.0 seconds - due to the
  undefined execution order of the "0" and the "X" events at 0.0 time
  several circuits broke.

  In general, you should use PowerOnReset active times larger than
  the larger of ClockGen t_initial and t_period times.

31.03.01

N
  major cleanups in hades.simulator.SimObject and several model subclasses,
  namely hades.models.gates.GenericGate and all simple gates.
  Much shorter and more readable, VHDL-like code for the gates.

30.03.01

N
  got the VHDL export working for several designs, including the
  inverter chains and the dcf77 clock. Unfortunately, Synopsys VSS
  seems to run the dcf77 simulation about 2X faster than Hades.

N
  some performance tweaking in hades.signals.SignalStdLogic1164.

29.03.01

F
  some basic documentation fixes, corrected some typos in the
  VHDL export classes. First working VHDL netlist export for
  simple designs. 
 

25.03.01

N
  complete rewrite of the VHDL export classes. Renamed VHDL_exportable
  and VHDL_Writer to VHDLExportable and VHDLWriter, added new classes
  VHDLNameMangler and VHDLModelFactory.
  
  Basic VHDL netlist export is now possible for gate-level designs,
  given that the instance/signal names are more-or-less VHDL87
  compatible. While the VHDLNameMangler will try to construct fully
  valid VHDL87 names, it currently does not detect special cases
  like double underscores ("__") etc.



16.03.01

N
  fixed hades.manager.tree.SimObjectTreeNode to check and use
  the CLB type. It is now possible to load both standalone 
  simobjects and subdesigns via Colibri browser.

N
  changed hades.models.Design.initialize() to call DesignManager.
  getInputStreamXXX() when loading the design .hds file.
  This allows us to load designs from ZIP-files as well as from
  the filesystem.

F
  fixed some description and wrong icon/thumbnail references in
  the 74xx CLB files.

F
  added getDescription() to hades.gui.ColibriCreateCommand.
  Also added better exception handling and reporting.

15.03.01

N
  more CLB files and thumbnails images for the hades.models.ttl74 
  simobjects and subdesign. Also wrote some text descriptions the
  74xx models. Created example library t1-libraries/74xx with the
  models used in our T1 lab course.

13.03.01

N
  generated CLB files with short text description for all SimObjects
  in hades.models.gates, hades.models.io, hades.models.complexgates,
  and hades.models.flipflops. 

  Also added CLBs for some system-level simulation models.

N
  changed hades.gui.ColibriCreateCommand to allow for creation of
  multiple objects of the selected type.
 

12.03.01

N
  added setThumbnail() method to hades.manager.BrowserFrame

N
  changed hades.manager.tree.SimObjectTreeNode to load and use the
  ComponentInfo for the given simObject. Once the CLB is loaded,
  the corresponding name, author, version, and description data
  is displayed in the BrowserFrame's infoPanel.
   

09.03.01

N
  re-integrate hades.manager.ComponentInfo (taken from Colibri)
  into Hades

05.03.01

F
  force fixed layer for hades.symbols.Symbol and hades.symbols.FigWrapper
  to get correct z-ordering of objects

F
  fixed hades.models.ruge.IntegerSignal to correctly setup WireSegment
  lineWidth for Java2D, too

F
  added FatLabels to the TTL 74xx series symbols for easier recognition
  in schematics.

04.03.01

N
  more hades.manager.tree stuff, first event handlers for component,
  simobject, and text file selection and double click (=open).

N
  converted Colibri InfoPanel to a pure Swing version, integrated
  into hades.manager.InfoPanel

02.03.01

N
  better implementation of hades.utils.Exporter.createThumbnail()
  which uses the new "zoom fit" functions and generates even sized
  borders.

N
  new class hades.manager.CreateIconForDesign to create GIF icons
  from Hades designs or components.

F
  fix NullPointerException in hades.models.fsm.FsmRenderer when
  repainting() with Java2D enabled.

01.03.01

N
  new class hades.manager.BrowserFrame, based on the original 
  Colibri BrowserFrame, but with major cleanups. And without
  the event handlers, yet...

F
  many fixes in hades.manager.TreeManager to support and create
  the new TreeNode subclasses.

N
  new package hades.manager.tree to collect DefaultMutableTreeNode 
  subclasses: currently, we have SortedTreeNode, ZipRootTreeNode,
  FileRootTreeNode, DirectoryTreeNode, SimObjectTreeNode,
  DesignTreeNode, TextFileTreeNode. More to come.


28.02.01

N
  new class hades.manager.TreeManager to support all Colibri
  tree operations. It currently creates trees from ZIP file
  contents and file system contents, but lacks all real event
  handling.

  This class is based largely on the original Colibri implementation
  from TNode, TBuilder, and Browser.


26.02.01

N
  new SetupManager property "Hades.Exporter.PrintFitToA4" to select
  whether a Design should be fitted to A4 paper before printing.

21.02.01

N
  started the major DesignManager update...

N
  allow to insert new data values via hades.models.mcore.
  DcoreDisassemblerOrHexCanvas

20.02.01

F
  fixed jfig layer setup for hades.models.FigObject and 
  hades.symbols.FigWrapper. As specified, a FigObject now lies
  on (and possibly below) layer 85, which is below 'normal' hades
  symbols.

16.02.01

F
  fixed hades.signals.SignalStdLogicVector and SignalInteger
  to set correct WireSegment lineWidth for Java2D, too. 
  The additional call to update() makes initializiation a little slower.

F
  got hades.models.mcore.DcoreDisassemblerOrHexCanvas to display
  and disassemble invalid (XXXX) values again. Also updated
  DcoreDecoder to handle (XXXX).

F
  allow to resize the DcoreDisassemblerOrHexCanvas, and try to 
  update the memory display and scrollbar behaviour correspondingly.


14.02.01

N
  finally implemented the "right" behaviour for doZoomFit via changes
  to hades.gui.ObjectCanvas and hades.gui.Trafo2D.

N
  new GUI component hades.models.mcore.DcoreDisassemblerOrHexCanvas
  to provide a nice display of D*CORE memory contents. The component
  allows to switch between raw hex dump and disassembled D*CORE
  instructions. 

F
  fixed the T3 Praktikum template designs. Among other things, we now
  reference the subdesigns (addr decoder and instruction decoder)
  from /hades/models/mcore/DcoreAddrDecoder and DcoreFieldDecoder.

F
  fixed the "enable init signals menu" stuff in hades.gui.EditFrame.

15.01.01

F
  several changes in models.rtlib.memory.MR20 (D*CORE microcode ROM)
  to fix the "dead on load" bug: need to reset cached information when
  to ROM contents are read-in, merged-in, or otherwise set.

F
  disable the "Initialize all signals" menu by default to make the
  editor more foolproof: using the initialize command will easily
  lead to inconsistent data structures.
  Re-enable by editing hades.cnf / .hadesrc

N
  added SetupManager configuration from files ./.hadesrc and ~/.hadesrc
  as well as ./hades.cnf and ~/hades.cnf to hades.gui.Editor for better 
  Unix-style integration.



07.09.00

F
  change the TurboPic16C84 to use pre-allocated Integer's instead of 
  using new Integer()s.

04.09.00

N
  added the debug ports (INSTR, PC, W, ...) to the TurboPic16C84

N
  corresponding changes to some signal classes: moved IntegerSignal
  to hades.signals.SignalInteger, corresponding Port class, also
  added hades.models.string.PortSignal.

F
  changed hades.styx.WaveformViewer and WaveInteger to use hades.signals
  instead of hades.models.ruge as the correct package for SignalInteger.

02.09.00

N
  added support for loadHEX/loadROM to TurboPicCore, also some renaming
  and OO-style reorganization in TurboPicCore and TurboPic16C84

F
  long overdue fixes to hades.models.special.VT52Canvas. Among others,
  decode() calls paintCharAt() if isShowing() only for greatly improved
  performance when the terminal window is not visible.

F
  fixes to hades.models.pic.HexMemoryCanvas: show not-implemented memory
  locations as "--" instead of "00" for much better visualization.

31.08.00

F
  method stub for checkIRQs etc. in TurboPicCore

30.08.00

N
  first GUI support hades.models.pic.TurboPicGUI for the TurboPic16C84

N
  restructured hades.models.pic.TurboPicCore$PicInstruction,
  (opcode field), $Breakpoint, etc.

F
  fixed setTrisA/setTrisB in TurboPic16C84  

29.08.00

N
  first version of hades.models.pic.TurboPic16C84, added PORTA/B
  to hades.models.pic.TurboPicCore

28.08.00

N
  first version of the "compiled-mode" hades.models.pic.TurboPicCore
  for the PIC16XXX microcontrollers. Implemented the standalone core
  with all PIC instructions.





23.06.00

N
  new user-configurable address decoder with four (active-low) outputs,
  hades.models.rtlib.memory.AddressDecoder4

F
  minor cleanups in hades.gui.EditFrame (improved menu layout)

F
  removed AdjustmentEvent.TRACK call handlers from ScrollCanvas
  (workaround for KaffeVM event lockup, also avoids other JDK 
  scroll problems).

14.06.00

F
  better labelling on RAM/ROM symbols (hades.models.rtl.RAM_xx and ROM_xx)

F
  improved hades.models.StdLogicVector.parse( String ) to allow
  the special values "UUU", "XXX", "ZZZ" as displayed and used by
  many RTLIB objects.

09.06.00

N
  improved hades.gui.PropertySheet 

N
  "formattedValue" hack in hades.models.rtlib.GenericRtlibObject 
  to use the selected TextFormatter for the PropertySheet instead of the
  previous (integer only) solution. This also allow to correctly display
  vectors containing UXZD values.

N
  use "formattedValue" instead of "value" in the configure() methods of
  many Rtlib objects...
  

28.04.00

F
  several fixes in hades.models.pic.PicAssembler

27.04.00

N
  modified several classes in the hades.models.pic package to support
  better disassembly in the PIC user interface (ShowPic2).
  Most importantly, a .ROM file may now contain label information
  "#label hex-addr label-name" lines, which are used in the disassembly.

  Also changed the PicAssembler class to automatically generate those
  label lines for the .rom output file, and a separate .lbl output
  file which may be used together with .hex input files (first load 
  the .hex data into the PIC eprom, then use ShowPic2->menu->file->
  load labels... to load the .lbl file with the label information).

  Sorry, no support for the Microchip MPASM xref format yet.
  Also, still no support for register aliases in the disassembly.

xx.04.00

N
  several JPShell (scripting) improvements


02.03.00

F
  fixed calculation of chars_per_line in hades.utils.IntelHexFile.
  writeHexFileData16 to avoid out of bounds errors for certain file
  lengths

F
  hades.models.pic.PicAssembler writes .rom before .hex

09.02.00 - 01.03.00 

N
  many improvements to javafig


08.02.00

F
  implemented the cursor up/down callbacks in hades.styx.WaveformViewer

F
  implemented variable display sizes in hades.models.special.TextLCD.
  Still no GUI to specify the display size however (edit the .hds file
  instead).

F
  make createNewSimEvent() and recycle() synchronized in SimEvent1164
  and WakeupEvent, to allow multi-editor simulations again.

F
  call StdLogic1164.setToResolve() instead of StdLogic1164.resolve()
  to fix the 'memory leak' for multi-driver signals in hades.signals.
  SignalStdLogic1164. The Phraser-example now runs without consuming
  memory.

N
  better redraw strategy in hades.models.special.TextLCDCanvas.
  Hotspot2.0rc1 still crashes in the phraser example, however.

N
  u

05.02.00 - 07.02.00

N
  finally implemented SimEvent recycling to reduce memory usage and
  improve simulation performance. Changed most (almost all) 
  gate-level components from the hades.models.* hierarchy to use
  SimEvent1164 and Const1164. Large gate-level simulations with some
  ~10000 components should run up to 100% faster and use ~20% less memory.

N
  new subclass Const1164 of StdLogic1164 to implement constant value objects

N
  changed the SimEvent class hierarchy. hades.simulator.SimEvent is now
  used as the generic SimEvent class with an java.lang.Object workload.
  WakeupEvent and SimEvent1164 are fast subclasses for wakeup events and
  StdLogic1164 workload events, respectively. Both subclasses implement
  event recycling with their private SimEvent pool - which is NOT
  synchronized. Running multiple simulations at the same time will
  probably NOT work reliably.





10.01.00

N
  more forgiving parsers for hades.models.rtlib.memory.GenericMemory
  and MR20. Comment lines (starting with '#') are now allowed.
  Empty lines are (silently) ignored.  Errors are reported with line numbers.
  MR20 sets the correct microcode field names internally and ignores
  the name line while parsing.

N
  upgrades to 't3/processor.hds' to get the STW instruction working.

N
  new subclasses hades.models.flipflops.DffreRtlib and DffRtlib with
  RTLIB-style symbols for better integration with RTLIB designs
  like 't3/processor.hds'


09.01.00

F
  minor fixes to hades.models.rtlib.memory.MR20



04.01.00

F
  rewrote hades.models.rtlib.memory.ROMoe evaluate() method to 
  allow address changes while nWE active without creating XXX values
  at the output.

F
  added enableToolTipMI to hades.models.rtlib.memory.MREditorFrame
  to disable the ToolTip when editing on Windows systems - otherwise
  the tool-tips window gets the keyboard focus every time the tip
  appears

F
  better error messages in hades.models.StdLogicVector.parse()

N 
  restructured the hades.models.rtlib.memory.MR (microcode ROM)
  constructor and initialization methods. New subclass MR20
  with similar function but 20 individual single-bit outputs.
  Changed T3/processor.hds to use the MR20 microcode ROM.

N
  new class hades.models.rtlib.logic.N1Or for bitwise OR-ing 
  of a vector with a single bit.


03.01.00

F
  set FileDialog mode flag in hades.gui.MemoryEditorFrame and cousins
  to keep Windows users happy.

F
  changed the logic in IpinVector.setValue() to correctly create
  a new StdLogicVector instead of reusing the old one

F
  print the original exceptions in PropertySheet.applyValues


02.01.00

N
  new RTLIB designs sequencer.hds, and processor.hds, with corresponding
  fixes and improvements to RTLIB classes Add, IpinVector, MR, MRcanvas,
  DcoreALU, RegBank.

N
  removed the automatic repaint() calls from the memory 'Hex' style
  canvases like hades.gui.MemoryHexEditorCanvas from the 
  setReadHighlightAddress and setWriteHighlighAdress calls. 
  Nowe the parent / caller is responsible for repaint requests, resulting
  in much better performance


29.12.99

N
  new memory initialization options in hades.gui.MemoryEditorFrame:
  linear, and linear+2

N
  new RTLIB components for memories with chip select and separate output
  enable, classes hades.models.rtlib.memory.ROMoe and RAMoe

N
  fixes and some new functions in MREditorFrame and MemoryHexEditorFrame

F
  changed all RTLIB flipflops to generate XXX (instead of UUU)
  for undefined inputs during simulation. This includes high impedance
  inputs (ZZZ).

F 
  added property sheet to OpinVector to allow direct specification of
  number format. Naturally, clicking still works to toggle the number
  format.

28.12.99

B
  sometimes, hades.models.rtlib.muxes.Mux21 and Mux41 write inconsistent
  width info to the .hds design file, leading to a NullPointerException
  in StdLogicVector.parse(). Should be fixed in both places...

B
  selecting/saving a memory data file does not change the memory
  component's resource name. Should be fixed.

B
  DesignManager should - finally - allow relative file names instead
  of only resource names (to support multi-user environments better).

N
  added event handling to hades.models.rtlib.memory.MRCanvas for
  the microprogram ROM. This required another class for the configuration
  editor frame, MREditorFrame.

N
  implemented the logic in hades.models.rtlib.memory.MR, the microcode
  ROM with interactive editor, see T3-lab-course example 'sequencer.hds' 

F
  fixed NullPointerExceptions in hades.gui.DeleteComponentCommand
  on port declaration/symbol mismatch. Also print a useful error
  message in this case.

N
  some new RTLIB utility components, e.g. hades.models.rtlib.arith.Incr2


27.12.99

N
  new component hades.models.flipflops.Dffe (edge-triggered D-latch
  with enable, for pure synchronous designs like FPGAs).

N
  new RTLIB component hades.models.rtlib.memory.RegBank 

N
  several new RTLIB designs for the Uni.Hamburg 'T3' course
 
F
  fixed NullPointerException when construction a MemoryEditorField
  while the memory resource was not initialized.
 
F
  fixed StdLogicVector.toHexString() to display the correct number
  of chars when bus-width not a multiple of 4. Also changed the
  formatting for 'UUU', 'XXX', and 'ZZZ' values.

20.12.99

N
  major renaming following the JavaFIG reconstruction.

30.11.99

N
  new class hades.utils.MemoryMultiple2SingleConverter to convert
  memory files from the multiple-data-per-line Diglog style into the
  one-addr-data-pair-per-line format expected by the Hades components.

F
  corrected hades.gui.MemoryEditorFrame to call setDataAt() instead
  of accessing data[] directly in the initialize (0/X/random) methods.
  Initialization now works for RTLIB memories.
  

F
  use a separate makefile for the MIPS core in hades/models/mips/makefile

29.11.99

N
  new version of the IDTR3051 MIPS processor core - with working
  Hades interface



17.11.99

F
  changed the 'multiple connection to one port' warning in 
  hades.signals.Signals from error to warning status, because some
  users were too frightened by the error message. 
  Probably, I should fix the Hades examples instead :-)

F
  disabled the (useless) warning from hades.gui.KeyHandler about
  unknown bindkeys. Set KeyHandler.debug=true to re-enable these
  warnings.

N
  changed the 'save setup configuration' function in hades.gui.Editor
  to sort the SetupManager properties before dumping, resulting in
  a much more readable list...

16.11.99

F
  changed the SetupManager initialization in hades.gui.Editor to 
  really load the global configuration file, '/hades/hades.cnf',
  so that global initialization should now work independent of 
  the working directory. Customization is still possible by the
  user and local working directory config files.

N
  first attempt to get a cycle-based implementation of the PIC 
  microcontroller with integration into the Hades discrete-event
  world (class hades.models.pic.SmartPic16F84). Corresponding
  minor change to hades.simulator.EventList.

  This gives an average factor-of-two speedup vs. the FastPic16F84
  on most designs I tried. Profiling within Hotspot shows curious
  results, however (lots of cpu usage in PicExec.clock()).


N
  new version of the Idt 3041 controller; memory management with
  instruction and data caches, wait-cycles, and write-buffers
  is now implemented - but not yet tested.

02.11 - 12.11 
  
  Tempus workshop 


29.10.99

F
  changed hades.simulator.WakeupEvent.evaluate() to pass itself
  (instead of just the 'source' field) to the target.wakeup() call.
  This makes the handling of SimEvents and WakeupEvents transparent
  to the Simulator, and allows SimObjects better control about how
  to react to WakeupEvents.

  Corresponding changes to the WakeupEvent constructor and
  several SimObjects.

27.10.99

N
  added callback interface javafig.canvas.ZoomListener

N
  implemented ZoomListener method and callbacks in javafig.canvas.GE_canvas

N
  implemented ZoomListener in hades.gui.CanvasScroller, which is now
  functional. Removed (deactivated) the debug calls in CanvasScroller

N
  added utility class hades.gui.WindowCloser. Removed several 'window
  closer' inner classes from hades.models.* and hades.gui.* classes.

F
  fixed rubberband initialization in hades.gui.CopyCommand - the new
  symbol for the copied-object is now created at the position of the
  source object.



24.10.99

F
  removed several pack() calls from hades.gui.PropertySheet to work 
  around the IBM JDK 118 Linux crashes. PropertySheet layout seems
  to work now on all of JDK 1.1/1.2 Solaris, JDK 1.1/1.2 Windows,
  IBM JDK 1.1.8 Windows and Linux, and Jview.


15.10.99

N
  further cleanups in hades.models.pic.FastPic16F84


11.10.99

F
  changed Pic16C84 and Pic16C84Debug to use the new user interface
  hades.models.pic.ShowPic2

10.10.99

N
  new user interface for the Pic16C84 with classes hades.models.pic.ShowPic2,
  MemoryDisassemblerView, ShowDisassemblerCanvas.
 
F
  makefile cleanups, removed unused PIC classes like MultiBitButton etc.

09.10.99

N+F
  further performance improvements and Hades-interface bug fixes 
  for the hades.models.pic.FastPic16C84. Simulation speed reaches
  160.000 pic instructions/sec. on my K6-III/400 using Hotspot-2.

  The PicExec core model should now react correctly (but with a latency
  of up to 1 pic instruction cycle) to the Hades-interface events.


05.10.99 

N
  improve and debug 'Phrasendrescher' PIC design


28.09.99

F
  corrected the carry/digit carry flag calculation for the subwf/sublw
  operations in hades.models.pic.PicAlu.
  The 'mastermind solver' and the Microchip 'pic clock' designs now
  work out-of-the-box with the Pic16C84 simulation model.




22.09.99

F
  force the hades.styx.Xsroller and hades.styx.Yscroller scrollbar
  increments to values >= 1, to prevent IBM JDK 1.1.8 from dumping
  core.

21.09.99

F
  added 'isVisibleAddress()' to hades.models.special.TextLCDCanvas
  to avoid out-of-range-cursor-repaints.

N
  added 'checkAutoStartSimulation()' method to hades.gui.Editor to 
  control whether to start the simulator or not after loading a
  new design / creating a new editor, etc. 
  Set the SetupManager 'Hades.Editor.AutoStartSimulation' property
  to control this.

N
  added the 'messagePopupLevel' to hades.gui.Console to control the
  popup/toFront() behaviour of the console. For example, call 
  setMessagePopupLevel( POPUP_NEVER ) to disable automatic toFront()
  behaviour.

20.09.99

N
  new version of the hades.jpshell.XXX classes for the JPython scripting
  interface.

17.09.99

N
  added "Reload" function to hades.models.pic.ShowPic to
  allow for easy reloading of program updates.

F
  cosmetic fixes and cleanups in hades.models.special.TextLCD

F
  fixed the evaluate()/scheduleEvent() calls in hades.models.rtl.RAM_256x8


16.09.99

N
  rewrote the hades.models.rtl.ROM_<xxx>x8 classes for better
  reusability. Added class ROM_8Kx8.



15.09.99

N
  busy on new demo and test designs for the PIC microcontroller.


14.09.99

N
  preparation for generation/conversion of the design examples
  into WWW-examples via applet pages

N
  new class hades.models.rtl.ROM_64Kx8

F
  integrated major improvements into to the IDT 3041 ucontroller 
  (hades.models.mips.*)

10.09.99

F
  more changes to hades.styx.WaveformViewer, Waveform, WaveformXXX,
  and Wavecanvas. Searching should not work again.

09.09.99

F
  changes to hades.styx.WaveformViewer, Waveform, Timepanel, and
  Transform. Zooming should now work; also most shortcut keys are now
  active (may need JDK117 or higher).

F
  fixed to hades.styx.Timepanel to display the time ruler even for
  very large (100seconds) and small (picosecond) intervals.

F
  fixed the crosshair cursor repainting in hades.styx.Wavecanvas to
  work with the shortcut keys (i.e. without MouseEnter/MouseExit events).

08.09.99

F
  changes and cleanups to hades.styx.WaveformViewer, Wavafrom, Wavecanvas,
  and Transform to get canvas zooming working in a user-friendly and
  transparent way. Zoom Fit, Selection, 25%, 50%, 200%, and 400% do
  work now. Note that out-of-range times (less than 0.0 seconds or
  later than simulation end time) are silently clipped.




06.09.99

F
  changed the default layout of PropertySheet to conserve screen space


03.09.99

F
  fixed the evaluate() method in hades.models.io.Pullup to include
  the pullup's port instead of 'this' to fix NullPointerExceptions
  in SignalStdLogic1164.evaluate etc.


xx.08.99 - 03.09.99

F
  several new demo designs and assembler programs for the Pic16C84
  models.

N
  new scripting support with pwd(), ls(), cd() style commands for
  the Python interpreter.


19.08.99

F
  got the clkout signal on hades.models.pic.FastPic16F84 working

F
  fixed Waveform.paint() to avoid out-of-bounds accesses to the
  times[] and events[] arrays, also added a try/catch block for
  troubleshooting

F
  further cleanups to getToolTip(), from SimObject and Design to 
  GenericRtlibObject


18.08.99

F
  added addSegment() methods to Signal subclasses to set correct
  WireSegment attributes (e.g. lineWidth)

F
  cleanups to getToolTip() methods for several SimObjects

16.08.99

F
  fixed the output value buffering in classes hades.models.pic.Pic16C84
  and hades.models.pic.FastPic16F84.

N
  fixed times/event array reallocation in hades.styx.Waveform
  and WaveStdLogic1164. Also catch OutOfMemoryErrors and move events
  in the arrays (delete oldest events to make room for some new events).

N
  made class hades.styx.Waveform non-abstract, and moved the common
  paint() method from subclasses WaveInteger to WaveString into Waveform
  itself. Now, class Waveform may also be used as a generic waveform for
  any user-defined Signal classes without special Waveform subclass.

F 
  fixes hades.symbols.Symbol to call member.setTrafo() in addMember().




08.08.99 - 12.08.99

N
  lots of fixes and cleanups in the waveform viewer classes, package
  hades.styx.*. Implemented waveform serialization and de-serialization,
  GIF-export, got redraw working and faster, less initial memory usage,
  better array reallocation, fixes to the user-interface and better 
  layout strategy, hundreds of variable/object/function renamings to
  the Java naming convention, ...
  Event searching, however, may still not work in all cases.
   

05.08.99

N
  got hierarchical designs working in applets (MSIE and Netscape 4.5).
  Still slow in Netscape...

F
  more fixes in hades.styx.*. 



04.08.99

F
  many fixes in hades.styx.*

N
  new icons and button panel for the WaveformViewer


03.08.99

F
  major rewrite and cleanups in hades.styx.SmartWaves and hades.styx.*.




29.07.99

N
  implemented a std_logic_1164 compatible resolution function in classes
  StdLogicVector and SignalStdLogicVector. Also several minor cleanups 
  in StdLogicVector, and the color encoding for vector glow mode.

F
  improved the default-tooltips for Rtlib components in GenericRtlibObject

N
  first attempt at the 'Democom' demonstration computer


28.07.99

N
  finished the Rtlib-demonstration model of the 'PRIMA' (primitive machine)
  von-Neumann machine, with a nice (ugly) gating of the RAM write enable
  signals.
  


26.07.99

N
  new version of InteractiveSimKernel with working Thread interaction
  and non-deadlocking breakpoints. 

N
  new Rtlib classes hades.models.rtlib.io.SmallConstant and
  ZeroExtend

F
  several cleanups to GenericRtlibObject and UserDefinedALU



25.07.99

F
  fixed the CLA-generation logic in SN74181.hds and SN74181_pinout.hds

22.07.99

F
  minor cleanups in the highlighting stuff 

N
  new model for the 74390 dual 1:2:5 counter

21.07.99

N
   added highlighting support to the Editor, via new symbol classes
   hades.symbols.HighlightRectangle and hades.symbols.HighlightWireSegment.
   Added methods highlightComponent(), highlightSignal(), and
   removeHighlightMarkers() to the Editor.

N
   model for the 74182 CLA generator
 
F
   fixes and demo design for the 74181 ALU 


20.07.99



19.07.99

N
   first working version of the Python-Shell (hades.jpshell.MyEditor)

N
   model of the 74181 ALU

N
   several new MSI TTL models, several counters as well as the
   7474 and 7476 flipflops. Also several demo/test designs for these
   models.



15.07.99


N
   cleanups in the PIC16x84 classes for improved interaction with HADES.
   Now, the output ports only generate HADES events, when the logical
   value of the port register has changed.

N
   got the 'fast PIC' hades.models.pic.FastPic16F84 working. The model
   realizes both the PIC16F84 microcontroller core together with an
   internal clock generator. This allows to simulation the controller
   without the overhead of 12 clock events per 1 PIC instruction.

   The model runs about 2-3 times faster than the PIC with external clock.
   The drawback is, that interrupt conditions are checked one-half
   clock period late. Note that there is not yet an user-interface to
   specify the clock frequency - for now you have to edit the HADES 
   file with a text editor to change the default clock of 4MHz.

F
   changed return type of hades.simulator.SimObject.getPropertySheet
   to java.awt.Component, to allow for standard AWT configuration dialogs.
   Also, added corresponding getPropertySheet methods to all current
   simulation components with non-PropertySheet configuration dialogs,
   e.g. PIC16C84, SerialTerminal, UserDefinedALU, etc.
   Note that these dialogs should now be removed via setVisible(false)
   when closing a design.

F
   made the KS0108 controller an internal class in hades.models.GraphicsLCD.


14.07.99

N
   added get2ComplementAddOverflow() method to hades.models.StdLogicVector,
   use in hades.models.rtlib.arith.UserDefinedALU

N
   several fixes/cleanups/renames in SmartWaves, Wavecanvas, etc.

N
   added doCloseDesign() method to hades.gui.Editor to collect all
   actions necessary when closing a design: removing all signal probes,
   closing the PropertySheet editors, stopping the simulator, ...

09.07.99 

N
   got hades.models.rtlib.memory.MicroROM working  

02.07.99

F
   more robust cursor repainting in hades.models.special.VT52Canvas

01.07.99

N
   first attempt atfaster PIC microcontroller simulation (internal clocking)


28.06.99

F
   fixes simulator 'amnesia' when multiple events scheduled from simple
   gates.

N
   added 'toggleGlowModeForOneSignal to Editor 
   

22.06.99


21.06.99

F
   fixes to LCDisplay, busy and instruction timing should now work

F
   added WindowListener to MemoryEditorFrame

N
   first tests of the JPython interface and shell (but not yet in the 
   'public' release)


18.06.99

F
   major improvements in LCDisplay, implemented user-definable characters

F
   modified the Microchip AN587 for use with the Pic16C84 and LCDisplay
   components, first with plain 8-bit parallel interface only.
   Fixed the busy-read timing violation in AN587 code.


17.06.99

F
   minor cleanups in several GUI classes

F
   implementen some commands in LCDisplay


16.06.99

N
   new classes for a character-based 2-line LCD dot-matrix display,
   hades.models.special.LCDCanvas and hades.models.special.LCDisplay


14.06.99

N
   new class hades.models.pic.Pic16F84 to model the Arizona Microchip
   PIC16F84 microcontroller. Some changes to PicExec, PicRegBank, etc.
   to allow for subclasses with different memory size/layout and 
   corresponding initialization.

   The 16F84 has 68 bytes RAM instead of 32 bytes on the PIC16C84.


09.06.99

F 
    added ValidName.encode/decodeUnicodeEscapes to several components,
    to support filenames with spaces etc.

F
    minor cleanups in ValidName

N
    fixes to hades.models.special.SerialTerminal to improve robustness,
    also added a WindowListener for windowClosing()

N
    new class hades.models.special.MidiReceiver to dump MIDI messages
    from a 31.250 kbaud RS232 MIDI channel (see the MidiFootSwitch example
    design with the PIC16C84 Controller)


08.06.99

N
    added methods to class hades.utils.ValidName to encode and decode
    Unicode chars in Strings with '\uxxxx' Unicode escapes.
    Changed hades.models.Design to write file and resource names in
    escaped form only, to allow directory/file names with spaces and
    other special chars.


07.06.99

F
    several new configuration file entries to enable/disable editor
    menu items, the system properties dump, etc.

F
    renamed the properties to specfiy the StdLogic1164 glow mode colors


03.06.99

F
    minor cleanups in EventList

F
    cleanups to the master 'hades.cnf' configuration file, also added
    some new properties (e.g. Hades.Editor.EnableDebugMenu).

02.06.99

N
    new class VhdlBatchSimKernel as a subclass of VhdlSimKernel: a batch-mode
    simulation engine with VHDL-style two-list semantics.

F
    removed broken Font() constructors from hades.gui.ImageButton.


01.06.99

F
    changed the static use of 'Class SignalStdLogic1164' in Port to get
    HADES working with Microsoft VM: The default compiler inserted a
    method $class() with default protection to load the Class object;
    which impeded access from subclasses (like PortStdLogic1164).

    The current solution with the 'dummy' signal is not beautiful, but 
    it works.    

N
    changed EditFrame and Editor to switch the Rtlib animation enable flag
    via the corresponding menu item in the Display menu.

N
    added 'enableAnimationFlag' to GenericRtlibObject, with corresponding
    changes to all Rtlib subclasses. Now, if animation is disabled, the
    Rtlib object won't schedule the (time-consuming) wakeup-events to
    update symbols. Also, the updateSymbol() method will return instantly,
    unless animation is enabled.

F
    changed Dcf77Sender and Dcf77Clock to use PortStdLogic1164.

28.05.99

N
    changed SignalStdLogicVector to call simulator.addPendingEvent()
    instead of SimObject.evaluate() directly, to allow for VHDL-style
    simulation with StdLogicVector data.

N
    better checking and protection against virtual machine 'garbage
    collection too slow' in SimKernel and subclasses, to avoid the
    OutOfMemoryErrors when running with JDK 1.1.7/1.1.8 with JIT compilers
    enabled.

F
    cleanups and fixes in DesignManager: removed editorTable, use
    Design.hashCode instead of the Design itself in the designNameTable 
    and designDirTable. Together, this should get rid of the memory leak
    when opening many designs during one editor session.


27.05.99

F
    added calls setMode() on the FileDialog in DesignManager, to distinguish
    between loading and saving of SimObjects/Designs/etc.

F
    minor fixes and cleanups in VhdlSimKernel

N
    first support to disable animation (with corresponding very time-consuming
    repaints) in RTLIB objects.

I
    performance experiments with the new virtual machines ( IBM JDK 1.1.7,
    MS SDK 3.1/3.2, JDK 1.2.1, JDK 1.2.1 + Hotspot)


26.05.99

N
    got VhdlSimKernel for full two-list simulation working

21.05.99

F
    fixed AddSegmentToSignalCommand and CreateSignalCommand to check
    (victim!=signal) defore deleting the victim signal...
    This should remove one of the most sought-after bugs

F
    cleanups in hades.signals.Signal. Also added portPositionTable 
    and the corresponding methods to correcty rebuild the solder dots:
    Now, solder dots are inserted at all vertices with three or more
    edges, or (new) at port vertices with two edges.
    

21.04.99

F
    fixed merging in AddSegmentToSignalCommand and CreateSignalCommand.
    A new SolderDot is now created whenever the merging point is not
    already a vertex in the victim signal.

20.04.99

N
    allow merging of signals for AddSegmentToSignalCommand and
    CreateSignalCommand. If necessary, a new vertex is inserted into
    the victim signal.
    Note that undo() won't work correctly if merging is used.

F
    changed AddSegmentToSignalCommand to forward to CreateSignalCommand
    if the user clicks on an empty (unconnected) Port.

F
    updated DeleteComponentCommand.undo() to reconnect all Signals
    to the target SimObject

16.04.99

F
    tried to improve EventList performance

14.04.99

F
    changed ObjectCanvas to don't print repaintOverflow warnings.

F
    don't update a context tooltip unneccearily, if the tooltip
    hasn't changed (in hades.utils.ToolTipManager.updateToolTip()).

N
    major changes (rewrite) to the StdLogicVector data structure,
    which should result in much better performance for RTLIB 
    simulations.


07.04.99

N
    include new data field "value" in each Port to keep 'persistent'
    info about the Port data value.


06.04.99

N
    new classes hades.models.flipflops.LatchMetastable and
    hades.models.flipflops.DffMetastable to model metastable
    level-sensitive and edge-triggered flipflops. The models
    won't propagate 'U' or 'X' values, but generate random '0'/'1'
    values with a random (and potentially, large) delay.

05.04.99

F
    several fixes to the undo/redo mechanism in classes UndoStack,
    Editor, and many Command classes.

F
    fixed several bindkeys, but still problems due to platform
    dependencies. 


01.04.99

N
    new

F
    rewrote several GUI classes to use JavaFIG SimpleTextViewer to display
    help texts.

N
    new utility class javafig.gui.SimpleTextViewer (see JavaFIG).

F
    added ObjectCanvas popup-menu callbacks for 7483 (pinout) and Stimulus.

F
    fixed reversed bit-order in hades.models.io.Stimulus parseData/writeData.
    

26.03.99

25.03.99

N
    integrated hades.gui.StimuliEditor into hades.models.io.Stimulus

23.03.99

F
    first working version of hades.models.io.Stimulus, with I/O, symbol,
    parser/writer.


23.02.99 

N
   new class hades.models.io.Stimulus for a simple stimuli generator
   (8 outputs, user-specified number of time-steps, StdLogic1164).


xx.02.99

N
   new utility javafig.gui.PresentationViewer and related classes.

F
    major changes to JavaFIG,
    workarounds for many JDK 1.2 problems on Windows.





01.12.98

F
  added menu items and callbacks for the SN 74107, 74138, 74375

N
  new SimObjects hades.models.ttl74.SN74107A and SN74107A_pinout,
  SN74138, SN74138_pinout, SN74375_pinout (realized as subdesigns).


30.11.98

F
  better symbol for hades.models.io.DiodeSwitch

F
  fixed class hades.models.io.SevenSegment to support multiplexed 
  displays 

F
  renamed all 'pinout' variants from package hades.models.ttl74 to
  '_pinout' for better readability. This change includes all SN74xx
  symbols, FIGs, and examples.

29.11.98

F
  fixed the bug in hades.models.gates.Tri, introduced during
  simevent recycling.

F
  changed class SevenSegment to react to the 'kathode' input value

N
  new class hades.models.io.DiodeSwitch

N
  new class hades.models.gates.InvOpenCollector

27.11.98


23.10.98

N
  rewrote hades.models.dcf77.Dcf77Sender to recycle SimEvents

F
  fixed hades.models.flipflops.Jkff

22.10.98

N
  new intermediate class hades.models.flipflops.GenericFlipflop.
  Rewrote all classes from package hades.models.flipflops to reuse
  StdLogic1164 and to use PortStdLogic1164. Also, the flipflops will
  now check both setup- and hold-time violations.

21.10.98

N
  rewrote all classes from package hades.models.complexgates to reuse
  StdLogic1164 objects. Also, the complexgates now use PortStdLogic1164
  ports.

20.10.98

N
  added some performance monitoring code to hades.gui.ObjectCanvas,
  to track synchronous repaints.
 
N
  rewrote some classes from package hades.models.io to reuse StdLogic1164
  objects.

N
  rewrote all classes from package hades.models.gates to reuse StdLogic1164
  objects, in order to improve gate-level simulation speed. Also, all
  gates now use PortStdLogic1164 ports, for much cleaner code and the
  option for better VHDL export.

N
  added the menuitem and callbacks to create the Pic16C84 microcontroller
  to hades.gui.ObjectCanvas and hades.gui.Editor.

19.10.98

N
  added support for 'object reuse' to class hades.signals.SignalStdLogic1164,
  in order to support reused StdLogic1164 objects during simulation.
  
N
  added setter methods to hades.models.StdLogic1164. The class now has
  one 'create new object' and one 'reuse buffer object' method for
  each logical function. In general, the 'create new object' methods
  are safer to use, but the 'reuse objects' may be faster due to
  lower object creation and garbage collection overhead.

N
  added object recycling to classes hades.simulator.SimEvent, 
  WakeupEvent, EventListNode, and EventList to improve performance,
  memory usage, and to reduce garbage collection overhead.

10.09.98

N
  added utility methods scheduleAfter() and wakeupAfter() to SimObject.
  These methods incur a little runtime overhead, but greatly improve
  readability of SimObject's evaluate() methods.

N
  added support for 'tool tip updates' to class hades.utils.ToolTipManager.
  By default, a visible tool tip is updated once a second.


08.09.98

N
  new method getWidthString() in hades.models.StdLogicVector, to
  return a string of the format "<15:0>" etc.

N
  new class hades.styx.WaveStdLogicVector, corresponding changes
  to hades.styx.SmartWaves

07.09.98

F
  changed the 'file logging' capabilities in hades.gui.Console, so that
  the logging is off by default. Call 'enableFileLoggingGUI()' to activate
  the file logging GUI components.

F
  fixed to initSignals() in hades.gui.Editor to allow to initialize
  non-1164 Signals via the menu, too. Modified SignalStdLogicVector
  to allow '0', '1', 'U', and random initialization.

F
  added setValue(String) overload to hades.signals.Signal.
  Also implemented setValue(String) in SignalStdLogic1164 and
  SignalStdLogicVector.

F
  added 'remove probes' menu items to EditorMenuBar, corresponding
  callback methods in Editor.

F
  fixed NullPointerException in RTLIB Mux21. Also used Port subclasses
  and several cleanups in Mux21

F
  bug-fixes and cleanups in UserDefinedALU. Added getToolTip() method

F
  fixed the add() and sub() methods in class hades.models.StdLogicVector
  in order to avoid spurious XXX and UUU results

05.09.98

N
  new RTLIB class hades.models.rtlib.arith.UserDefinedALU, a 16-function ALU 
  with user-selectable mapping of functions to the 16 opcodes

04.09.98

N
  new RTLIB class hades.models.rtlib.register.ShiftRegR
  (n-bit shift-register with shift-enable and clear)

N
  new RTLIB class hades.models.rtlib.io.SubsetFlip which extracts a
  subset of the input bits with inverted (flipped) bit-order.

N
  new version of the Waveform viewer (Styx). Display of StdLogic1164
  values seems to work now.

03.09.98

N
  new RTLIB class hades.models.logic.N1And

N
  added method copy() (copy-constructor) to class StdLogic1164

N 
  new RTLIB class hades.models.rtlib.io.ExpandBit

F
  fixed RTLIB hades.models.rtlib.io.Constant to schedule an event on its
  output during elaborate(), in order to get Constants inside of subdesigns
  working

N
  new RTLIB register with reset, class hades.models.rtlib.register.RegR

F
  changed all RTLIB register model to use the Port (1164) subclasses,
  corresponding compact rewrites of all evalutate() methods.

F
  fixed NullPointerException in RTLIB Mux21 when not visible
  (in a subdesign)

F
  removed unnecessary wakeup()-calls in all RTLIB models with static symbols

F
  don't write an Exception trace after a SimObjectNotFoundException from
  CreateByNameCommand. Report the annyoing (not found) class name instead.

01.09.98

F
  several Colibri-related bug-fixes in DesignManager and related classes

31.08.98

N
  new package hades.models.gates.delaynode with classes DelayNode,
  DelayNode_LR, DelayNode_TB

29.08.98

N
  additional RTLIB classes BusTapRight and BusTapLeft. Functionally, these
  are equivalent to hades.models.rtlib.io.Subset, but the symbol is
  less big to improve readability of schematics with lots of bus taps.
  The name "bus tap" is taken from the SIGRED editor.

N
  RTLIB class for arithmetic two's-complement, hades.models.rtlib.arith.
  TwosComplement.

N
  new symbols for several RTLIB components

N
  new RTLIB memory models in hades.models.rtlib.memory: ROMcs (ROM with chip
  select), RAM (asynchronous RAM), DPRAM (dual-port RAM)

F
  fixed memory-resize and isConnected() bugs in hades.models.rtlib.GenericMemory

F
  improved layout for hades.gui.SimControlPanel

28.08.98

N
  new input semantics (separate U/X/Z and incr/decr) in RTLIB IpinVector
  mousePressed(). Also added support for hex/decimal/binary value display.

N
  major changes and cleanups in RTLIB IpinVector and OpinVector.

N
  further changes in GenericMemory

27.08.98

N
  major changes in GenericMemory and ROM

26.08.98

N
  first version of RTLIB memory classes GenericMemory and ROM, in package
  hades.models.rtlib.memory

N
  new class hades.symbols.HorizontalBarGraph

N
  changed Editor to version 0.51

N
  new RTLIB classes hades.models.rtlib.io.Expander, MergeBits, and Merge3

N
  finally introduced utility Port-subclasses: hades.models.PortStdLogic1164,
  hades.models.PortStdLogicVector.
  Note that similar subclasses for other signal types should not be added
  to package hades.models but to the package where the corresponding signal
  type is included.

25.08.98

F
  fixed the NullPointerExceptions in the RTLIB register classes when an
  input signal without driver was connected to the D input (classes
  hades.models.rtlib.Latch / LatchR / Reg / RegE / RegRE).

N
  new symbols for all rtlib components, using a top-down dataflow
  metaphor (all inputs on the top, all outputs on the bottom, control inputs
  on the left).

F
  fixed hades.gui.MoveSignals to catch the Exception thrown when the
  SimObject's port declaration didn't match it's symbol.

24.08.98

N
  added 'file logging' to class hades.gui.Console.
  Logging is controlled either interactively or via the SetupManager 
  properties "Hades.Console.LogfileName" and "Hades.Console.LogEnable"

N
  added double checking for <ESCAPE> key char and key code to 
  hades.gui.KeyHandler, to get JDK 1.1.6 working in the Editor

F
  changed the semantics of mouse clicks in the Editor: The editor now first
  checks, whether the mouse is on a port (and initiates a CreateSignalCommand).
  This allows to connect objects, whose PortSymbols are not exactly on their
  boundary (or even inside the object).
  If no port is found, the mouse click is propagated to the "mousePressed()"
  method of the corresponding object, if any.

N
  reorganized the editor menu bar. Added the "Signals" and "Special" menus,
  and several menu items to work-around the standard Java memory management.

22.08.98

N
  several changes to accomodate the most recent version of Colibri.

XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX
XXXXXXXXX XXXXXXXXX XXXXXXXXX

01.07.98

N
  new methods canConnect() and canMerge() in CreateSignalCommand and
  AddSegmentToSignalCommand. From now on, the Editor should not allow
  to connect or merge signals of different types or buses of different
  width.


26.06.98


F
  changes to the Java sources and object symbols as necessary by F--.

F
  moved the "colored by value" graphical objects from the hades.models.ruge
  package to hades.symbols package: ColoredRectangle, ColoredValueLabel,
  Color_DIN_IEC_62.

N
  first models of the "rechnerbaukasten" RT-level components:
  hades.models.rtlib.IpinVector, GenericRtlibObject, Incr, Adder

N
  new class SignalStdLogicVector to model buses of StdLogic1164 wires

N

  new class StdLogicVector modeled after Synopsys's std_logic_arith.vhd
  and std_logic_signed.vhd



03.04.98

N272
  new package 'hades.models.ruge' with SimObjects for the 'Lagemann/Ruge'
  design style: IntSignal, Color_DIN_IEC_62, Constant, Mux, Adder, Register

F271
  several fixes to hades.gui.CreateSubdesignCommand to check for null
  subdesigns or subdesigns with null symbols.

F270
  added method doOpenFile(Design) to hades.gui.Editor to support Colibri

F269
  allow FsmWrapper initialization without versionID.

N268
  included the 'ColibriCreateCommand' into hades.gui.

02.04.98
  
N267
  restructured the JavaFIG class hierarchy, with new package 'javafig.utils'.

01.04.98

F266
  restructured the JavaFIG class hierarchy. Removed all classes and references
  to the old (Java 1.0.2) editor and viewer, with corresponding changes to
  the FIG parser, FIG writer, exporter, etc.

31.03.98

N265
  implemented the 'state output' in 'hades.models.fsm.FsmWrapper'.
  This is the first model to use the 'StringSignal' from N304. See
  the 'examples/javaFSM/ampel.hds' design for an example.

30.03.98

N264
  new classes 'hades.models.string.StringSignal' and 'hades.models.string.
  StringDisplay' as a demonstration for signals that distribute Java String
  objects.

N263
  implemented the 'addProbesToAllSignals', 'addProbesToToplevelSignals',
  'addProbesToAllSignals' method in 'hades.gui.Editor'.

27.03.98

N262
  changed 'hades.gui.CreateSignalCommand' to create a Signal object
  corresponding to the connecting Ports default Signal type. It is  
  now possible to have several Signal types (SignalStdLogic1164, 
  ImageSignal, StringSignal, ...) in one Design.

N261
  added new field and methods to clas 'hades.simulator.Port' to specify
  the base Signal class to be connected by this Port. 
  To keep compatibility with existing Designs, the default Signal of a 
  Port is still of type SignalStdLogic1164, but this may be changed in
  the future.

F260
  several fixes to the image processing classes.

N259
  new synchronous image-filters, 'hades.models.imaging.GaussFilter',
  'hades.models.imaging.DifferenceFilter'


26.03.98

N258
  new package 'hades.models.imaging' with some demo classes for image
  processing, including the new Signal type 'ImageSignal', an image
  viewer 'ImageViewer', 'ImageSource', and several simple per-pixels
  filters ('RedFilter', ..., 'InvertFilter').

24.03.98

N257
  new methods createThumbnail() in hades.utils.Exporter, with corresponding
  menu item and callback code in hades.gui.EditFrame and Editor.

F256
  several changes to the JavaFIG objects and canvas classes to work around
  the "Windows timer resolution" bug, which broke zooming and panning on
  fast workstations.

20.03.98

F255
  fixed class hades.gui.SignalMovePointCommand to automatically (re)connect
  if the signal vertex is moved to a component's port.

N254
  new class hades.utils.TmpFile to create and manage temporary files.

17.03.98

N253
  added setClassLoader, getClassLoader, and getResourceAsStream
  to hades.simulator.SimObject, as a first support for the COLIBRI
  DesignManager.

05.03.98

N252
  new tutorial help pages for 'simcontrol' and 'bindkeys'. Also corrected
  (=deleted) some entries in the 'contents' page.

N251
  new bindkeys 'I', 'O', and 'V' to create an Ipin, Opin, or (small) Inverter
  directly. Changed bindkey for 'signal move point' from 'o' to 'M', to be
  consistent with the 'n' and 'N' bindkeys.
  Finally, changed the bindkey for 'show messages' from 'M' to 'Q'

04.03.98

F250
  fixed the mirrorX() and mirrorY() methods in javafig.objects.GE_rectangle
  and hades.symbols.PortSymbol to update the correct "origin" of the
  rectangle. For the GE_rectangle, we just set the new top-left corner as
  the new origin, while the origin of the PortSymbol has to stay at the
  center of the corresponding rectangle.
  Note that this fix is required to get the HADES "autoconnect" command
  working for SimObjects with mirrored Symbols. 

N259
  use class StringDialog as a WindowListener interface for its own 
  WindowEvents, so that the dialog returns "Cancel" automagically, 
  whenever the dialog window is "closed".

N258
  use 'M' as a bindkey for 'show messages', that is, bring the HADES
  console to front.

F257
  display the current design name in the 'Confirm changes' dialog window 
  (class OKtoQuit).

N256
  added standard Java 1.1 menu shortcuts to the ObjectCanvas popup-menu
  and the HADES EditFrame main menu. Note that the Java 1.1 keyboard
  acceleration uses key combinations of the form 'CNTL-XXX' or 'ALT-XXX',
  which usually requires both hands. Also note that some versions of JDK 1.1.x
  display the wrong accelerator combinations, e.g. Linux 1.1.3 displays
  'CNTL-A' but will react to 'ALT-A'.

  Fortunately, the standard HADES keyhandler will still react to the 
  one-handed keys 'XXX'.

N255
  new subclass hades.utils.FileDialog to specify font name and size for
  the FileDialog as well.
  Unfortunately, some Java implementions seem to ignore a 'setFont'
  on the system file dialog.

N254
  use SetupManager properties to specify font name and size for all
  independent top-level windows except the Waveform viewer:
  hades.gui.Console, 
  hades.gui.ExportOptionsDialog, 
  hades.utils.DidYouKnowFrame

  Corresponding changes to 'hades.cnf'

0.48g, 27.02.98

N253
  new menu items 'Edit -> Mirror object along x-axis' and '... y-axis'
  in hades.gui.EditFrame and corresponding callbacks in the Editor.

F252
  changed hades.gui.MirrorXCommand and MirrorYCommand to check whether
  the object to be mirrored is already connected. If so, the command
  is canceled.

25.02.98

N251
  first attempt at the Intel 8048 microcontroller model,
  hades.models.i8048.I8048.

N250
  support for mirrored (x/y) and rotated (planned) Symbols, with all
  necessary changes to classes hades.symbols.Symbol, hades.models.Design,
  and hades.utils.Parser.

  WARNING: The Hades file format had to be changed to allow for the extra
  symbol orientation information, which is encoded in a String starting
  with "@". Examples are "@N" (normal), "@XYR270" (mirrored x, mirrored y,
  rotated 270 degrees).
  The parser should be able to read old Design files.

  WARNING: Note that mirroring is not a useful operation for several
  components/symbols. For example, mirroring won't work 
  for hades.models.io.HexSwitch or hades.models.io.HexDisplay.

F249
  fixed all JavaFIG objects to support the mirrorX() and mirrorY()
  operations. Note that the current implementation for a 'text mirrorY()' 
  may be changed again.

24.02.98

N248
  new editor command objects 'MirrorXCommand' and 'MirrorYCommand'
  to mirror component's symbols.
  However, mirror'ed objects are not yet supported in .hds files.

 
N247
  new model hades.models.rtl.RAM_256x8 for a clocked-inputs SRAM with
  256 by 8 bits with nME, nWE, and nCS control inputs.

23.02.98

N246
  new model hades.models.gates.Demux14 for a simple 1:4 demultiplexer

F245
  fixed some bugs in the behaviour of hades.models.flipflops.DFFRS 

N244
  new model for an edge-triggered D flipflop with enable and reset,
  hades.models.flipflops.DFFRE

N243
  new menu item 'Show FAQ' and corresponding callback method(s) in
  hades.gui.Editor and hades.gui.EditFrame

F242
  added a 'try/catch' block to hades.gui.SyncRedrawTimer, in order to
  catch possible 'OutOfMemoryException's during repaints.


F241
  enlarged the 'display area' in hades.models.io.LED components,
  to improve the visual aspect of 'traffic light' and 'Laufschrift' designs. 

18.02.98

F240
  clear any existing waveforms when restarting a simulation or when
  changing the design. New method(s) clear() hades.waves.Waveform
  and hades.waves.SmartWaves.

  Also added a new menuitem 'Edit -> clear waves' to the HADES editor.

F239
  fixed all flipflop models in package hades.models.flipflops in order
  to inhibit the propagation of Z,X,U,D signals, and to report correct
  timing information together with setup-time violations.

N238
  further changes to the redraw algorithm in javafig.canvas.GE_canvas
  and hades.gui.ObjectCanvas. 

  Now, ObjectCanvas implements the synchronous repainting with a Hashtable, 
  so that multiple redraw requests on one graphical object are compressed 
  with only the last request remaining.
  This improves redraw performance in all situations, where multiple
  redraw requests per object/component are frequent, like seven-segment
  displays or clock signals. See 'examples/laufschrift.hds' for an example
  of the better performance.

17.02.98


F237
  further fixes in hades.gui.CreateSignalCommand,
  and additional NullPointer checks in hades.signals.Signal.merge()

16.02.98

N237
  several bug fixes and a new redraw mechanism in
  javafig.canvas.GE_canvas, javafig.canvas.ViewerCanvas, hades.gui.ObjectCanvas.
  Some finetuning of the redraw delay parameters.

F236
  several fixes in hades.gui.CreateSignalCommand

F235
  fixed a fatal logic bug in hades.models.StdLogic1164.OR_TABLE

13.02.98

F234
  fixed 'add segment to signal' and 'create signal' commands to allow
  signal merging, if the final signal point lies on an existing signal
  vertex. However, the user is required to <shift>+<click>, in order
  to avoid accidental signal merging

N233
  allow to merge two Signals, new method Signal.merge( Signal victim )

N232
  new bindkey 'v' for 'insert vertex' command

F231
  fixed several signal-editing command classes to watch out and prohibit
  or ignore length0 wire segments.

N230
  new command 'InsertVertexIntoSignalCommand'

11.02.98

N229
  allow the 'y' and 'Y' bindkeys as aliases for 'z' and 'Z' (zoom out/in)
  for better support on German keyboards.
  Also, use 'N' to change a Signal name.

N228
  use Signal.splitIntoSubgraphs in DeleteSegmentFromSignalCommand

F227
  don't allow wire segments with length 0 in CreateSignalCommand

version 0.47a, 10.02.98

F226
  fixed a bug with forgotten re-enable of the popup-menu introduced
  with N221 in the MoveCommand and CopyCommand classes

N225
  improved the internal algorithms in CreateSignalCommand and
  AddSegmentToSignalCommand. Also reduced the redraw frequency dramatically.

N224
  don't show the 'tip of the day' unless explicitly enabled

N223 
  use the 'x' bindkey to delete wire segments

09.02.98

F222
  fixed a major bug in the simulation models of the AOI33 and OAI33
  complex gates.

06.02.98

N221
  some users didn't like the MoveCommand and CopyCommand semantics,
  because the commands disabled all other editor functionality
  until they got a mouseclick over an object to move/copy.
  Now, the commands are automatically canceled when initiated outside
  a valid object.

N220
  new methods 'udpateEditorCloseMenuItems()' and 'enableCloseMenuItem'
  in hades.gui.Editor and EditFrame to enable/disable the 'File -> Close'
  menu item with the standard semantic.

27.01.98

N219
  added 'Cancel' menu item to the Editor, to allow for users who aren't
  accustomed to the 'ESC' key.

F218
  fix to F214

N217
  modified to DesignManager to automatically set pathname and filename
  (xxx.sym) in getFileOutputStreamForSymbol.

N216
  added configure() dialog to hades.models.io.Ipin to specify switch
  delay and default (start) value.

26.01.98

F215
  corrected 'Editor.doPrintEditorTable' method

F214
  fixed inconsistency between layer visibility attributes and corresponding
  menu items when 'hades.cnf' was not found during initialization

0.46a, 23.01.98

F213
  the 'Export->Print (Postscript/fig2dev)' command now uses the options
  for maginification/offsets specified in the 'export options dialog'
  window. Also cleaned up the messages from the Exporter.

N212
  new 'About' Dialog window

22.01.98

F211
  allow undo for the 'delete all' command

21.01.98

F210
  changed export behaviour for PowerOnReset to be consistent with Ipins.
  The current switch state is now colored (gray/red) on 'bw with colored IO'
  export.

F209
  improved default behaviour for the message console. The console will
  only become visible automatically for '-E-' and '-F-' messages.

F208
  new fix for default (export) filename for hades.utils.Exporter and
  hades.gui.ExportOptionsDialog. Default filenames are now 'noname.fig'
  and 'noname.ps'

N207
  new class
  hades.models.register.ShiftRegister (with shift and reset)

20.01.98

N206
  new classes:
  hades.models.register.RegisterR (with reset)
  hades.models.register.RegisterRE (with reset and enable)

F205
  Exporter now updates the 'x by y inches' display, if the magnification
  factor is changed by the user.

N204
  Console calls toFront() on '-E-' and '-F-' messages

F203
  fixed hades.symbols.Symbol to use the standard Hades message Console,
  and to generate an useful error-message when a symbol resource file
  cannot be found

F202
  fixed hades.models.Design to generate useful error-message when
  the (sub)design resource file cannot be found

F201
  fixed minor bug with '.unnamed.ps' filename in hades.utils.Exporter

19.01.98

F200
  introduced 'synchronized' blocks into javafig.canvas.GE_canvas to
  improve the MTBF for the grid-redraw-problem

N199
  new package 'hades.models.registers', intended for n-bit editable
  registers as required for visualization of arithmetic.
  New class 'hades.models.registers.Register' as a simple rising-edge
  triggered D-Register.

version 0.45f, 06.01.98

N198
  support setup properties to specify LED colors (hades.models.io.LED),
  via properties "Hades.LED.Color.<red/green/yellow/blue>"

N197
  support setup properties to specify initial colors for StdLogic1164 values
  and signals (in glow mode) via properties "StdLogic1164.Color.<_U/.../_D>"

N196
  support setup properties specify initial number of saved lines in Console 
  with "Hades.Console.SaveLines" property

F195
  changed all accessor methods in SetupManager to static methods,
  so that 'getSetupManager()' is no longer required.

version 0.45e, 30.12.97

N194
  some new 'tips' about properties/resources and their management

N193
  use resources (from SetupManager) to set Editor and Console fonts,
  Editor and Console window size and positions, to enable the 'tips' window.

N192
  renamed hades.utils.Setup to hades.utils.SetupManager,
  remodeled as a Singleton class with static 'load<X>( filename )' methods.
  Note that this allows you to mix/merge the resources of several
  applications, if necessary.

F191
  don't load new (empty) Designs directly, use the DesignManager.
  New method 'getNewDesign()' in DesignManager.

F190
  improved Exception reporting in hades.utils.Parser

version 0.45d, 19.12.97

N189
  allow to create new Editors (clones) via the "File" menu

F188
  fixed class hades.symbols.ClockArm initialization

F187
  improved class hades.gui.PropertySheet to behave more robust on SimObject's
  without valid Editor-reference

N186
  class Editor now keeps track of all open Editors, method getActiveEditor()
  to reference the top-most/focussed Editor

17.12.97

F185
  modified DesignManager to accept only ".sym" symbol file names 

16.12.97

F184
  changes to javafig.gui.GE_sbutton and GE_colorButton to support
  xfig-style 'update toggles'

15.12.97

F183
  removed Editor as an ActionListener from the Exporter in EditFrame.

F182
  use filename AND directory when exporting, in hades.utils.Exporter.
  Also improved/fixed lots of messages from Exporter.

N181
  new class hades.utils.Setup to manage program environment and properties
   la Synopsys VSS: system, global, user, local

14.12.97, version 045c

F180
  several improvements to hades.utils.Exporter 
  and hades.gui.ExportOptionsDialog. 
  Among others, the 'fit to page' command should now work for A4 paper.

N179
  renamed and improved hades.gui.FigExporter to hades.utils.FigWriter.
  The class now handles full colors, I/O colors, and black and white options.
  Also, the class doesn't any longer need a reference to a GE_olist
  for the list of all GE_object's. Instead, a simple Enumeration of the
  GE_object"s suffices.

11.12.97

N178
  new class hades.gui.ExportOptionsDialog to present the fig2dev options

F177
  changed Symbol for models.io.AsciiDisplay to support black&white export

F176
  BlackAndWhiteExporter supports BboxRectangles (filled with very light gray)

08.12.97

N176
  added method to limit the maximum number of lines in the HADES message
  console. Use 'setMaxLines( int n )' to set the desired limit.

F175
  fixed doClose() in hades.utils.DidYouKnowFrame to avoid null pointers
  when show()n for the second time.

F174
  fixed class and symbol for models.io.LED to use 'ColoredCircle' instead
  of 'Circle' for colored/b&w export

05.12.97

N173
  new class hades.utils.BlackAndWhiteExporter as a subclass of 
  javafig.objects.GE_figOut that exports all objects except
  ColoredCircle and ColoredLine in black and white.

  This allows to integrate HADES exported figures easily and in good
  quality into black-and-white documents (for printing, etc.).
  Note that you should switch off the 'BoundingBox' rectangles on all
  objects before exporting.

N172 
  new classes hades.symbols.ColoredCircle and hades.symbols.ColoredLine
  to tag objects that should be colored even on a 'black and white' export.

N171
  included 'black&white only' option in export dialog user interface 

F170
  automatically disconnect Signals from Ports, whenever the corresponding
  Signal vertex is moved away from the Port with a SignalMovePointCommand

03.12.97

N169
  new class hades.symbols.PersistentInstanceLabel. A label object of this
  class cannot be disabled via the layer control, which is useful to keep
  important labels like I/O names visible even when other labels are disabled.
  Changed symbols of classes Ipin/Opin/PulseSwitch correspondingly.

F168
  new class hades.models.ttl74.SN7432pinout with symbol

F167
  fixed useless warning message from models.io.LED after a copy() command

F166
  improved symbol for models.io.HexSwitch

02.12.97

N165
  new 8:1 and 16:1 multiplexer models, realized as subdesigns in
  models.rtl.Mux8_1 and models.rtl.Mux16_1.

F164
  changes multiplexer symbol labeling on models.gates.Mux21 and 
  models.gates.Mux41. The MSB inputs are now on top.

version 0.45a, 01.12.97

F163
  changed all 'scheduleEvent' calls from AWT driven (mousePressed etc.) events
  to 'scheduleInteractiveEvent' in classes models.io.Ipin, models.io.HexSwitch,
  models.io.PulseSwitch, and models.io.PowerOnReset.

F162
  new method 'scheduleInteractiveEvent' for synchronized (=asynchronous)
  interactive user event scheduling in class simulator.Simulator.
  This should fix the 'user event loss' bug, at negligible performance cost.

F161
  improved EventList.insert() to fix the synchronisation problem for
  interactive Event scheduling.

F160
  fixed ruler labeling in ObjectCanvas/GE_canvas for non-integral zoom-factors
  with new method getZoomFactor_MultipleOfTwo() in javafig.canvas.GE_trafo.

N159
  new menu item 'tip of the day' in the EditFrame 'help' menu

N158
  ObjectCanvas menu items and Editor callbacks for the 74xx series components

28.11.97

N157
  new classes and corresponding pinout symbols for TTL 74xx series 
  components:
  hades.models.ttl74.SN7400pinout
  hades.models.ttl74.SN7408pinout
  hades.models.ttl74.SN7449pinout   (model as before, but better Symbol)
  hades.models.ttl74.SN7486pinout
  These models will generate 'U' outputs unless the VCC/GND ports are 
  connected.

F156
  added Editor as WindowListener for EditFrames. Windows can now be closed
  via the WindowManager (e.g. Windows'95 'X' Button on the title bar).

version 0.44b 27.11.97

F155
  models.io.LED sets FIG attribute to export color corresponding to input value

F154
  models.io.Opin sets FIG attribute to export color corresponding to input value

N154
  new directory '/hades/examples/javaFSM/' with a few JavaFSM/FsmWrapper
  demo designs (RS232 sender, traffic light controller, ...)

F153
  added method 'getOutputStreamForSymbol()' to DesignManager, to allow
  the user to select the file name when writing subdesign Symbol's.

F152
  minor cleanups in FsmWrapper

26.11.97
  
F151 
  further improvements to FsmWrapper, rebuilds correct Symbol, reconnnects
  to all Signals. The algorithm still has problems when FSM I/O pins
  were permutated.

25.11.97

F150
  copy color of LEDs

F149
  allows FsmWrapper.copy

F148
  include 'bulb' icon with DidYouKnowFrame.

N147
  new class hades.gui.ImageCanvas to include GIF/JPEG images with AWT
  Panels and Frames. Naturally, the AWT should have such class.

F146
  first fix to the FsmWrapper rebuildFSM() mechanism, works as long as
  the FSM's I/O remains unchanged.

24.11.97

N145
  class hades.models.fsm.FsmRenderer for high-quality display of the
  JavaFSM icons in the HADES editor, with corresponding changes to
  FsmWrapper.

23.11.97

N144
  new class hades.utils.DidYouKnowFrame to present the 'tip of the day'.
  Wrote some two dozen tips, see file '/hades/doc/tips.txt'.
  (first programming on my new K6/200).

21.11.97

N143
  additional data structures and algorithms in class hades.signals.Signal
  to support the 'wire delete' command. 

F142
  fixed clock edge detection in SignalStdLogic.hasRisingEdge().
  This also fixes the simulation problem with JavaFSM state machines.

19.11.97

F141
  fixed several warnings by javadoc in the class documentation

N140
  added automatic calculation of all SolderDot positions on a Signal
  after 'create signal' and 'add segment to signal' operations

N139
  added internal data structures to hades.signal.Signal to allow for
  the 'delete wire' command and connectivity analysis.
  (vertexTable, vertexArray, ...)

18.11.97

F138
  fixed NullPointerException in signal.Signal due to un-initialized
  driverValues array (introduced by F134)

version 0.44a, 17.11.97

N137
  added several bindkeys for selection commands to KeyHandler
  ('s' 'S' 'R' 'D' 'P'), but the commands themselves are not yet
  operational...

F136
  disabled most of the (annoying) debug-messages from waves.SmartWaves
  and waves.WaveCanvas.
  Added support for Cursor-Keys to move/pan in SmartWaves.

N135
  allow to remove probes from a Signal during simulation, using new class
  hades.gui.DeleteProbeFromSignalCommand, corresponding menu items in the
  popup menu of ObjectCanvas, and event logic in hades.gui.Editor
 
F134
  fixed NullPointerExceptions in SignalStdLogic1164.resolve() because
  of un-initialized driver values. 

F133
  fixed filename handling in gui.Exporter. 
  The chosen filename and directory are now used to construct the
  name of the intermediate FIG-file. For example, after selecting
  'dlatch.ps' for Postscript output, the required corresponding FIG-file
  will be called 'dlatch.fig' (in the same directory).
  Note: Be careful not to overwrite existing FIG-files by accident.

version 0.43b, 14.11.97

N132
  first attempt to realize resolved Signals.
  Currently, class hades.signals.Signal contains an array to store
  the values of all its senders. Perhaps it might be better to store
  these values in the SimObjects or their output Ports?!

F131
  tried a new version of 'synchronous repaint' in ObjectCanvas.

F130
  fixed 'signal move point' command to exclude points outside the current
  canvas snap grid from moving.
  It is still impossible to separate n points after they were combined.

13.11.97

N129
  added method 'message()' to ExceptionTracer

N128
  new bindkeys in KeyHandler:
  'A' for autoconnect
  '!' for debug on/off

N127
  added package 'hades.fsm' with the complete JavaFSM state machine editor
  and class hades.fsm.FsmWrapper.
  Added corresponding 'create' methods to the HADES editor and object canvas

version 0.43, 12.11.97

F126
  finer granularity of try/catch blocks in Design.write() for better
  handling of I/O exceptions

N125
  new command line option "-cxywh" for hades.gui.Editor to set the
  initial position and size of the message console

N124
  added 'autoconnect' menu items to EditFrame and ObjectCanvas,
  event handling in hades.gui.Editor

N123
  new command hades.gui.AutoconnectCommand to connect a SimObject to
  all WireSegments near/on its Ports

10.11.97

N122
  class hades.utils.ExceptionTracer to allow on/off switching of 
  exception traces. Corresponding command line option -vv in gui.Editor

F121
  fixed DesignManager: stores file name for Designs in special Hashtable
  for automatic 'save file' command.

F120
  fixed DeleteCommand: finds Signals before SimObjects to allow
  deletion of Signals without intermediate vertices

F119
  fixed DeleteCommand: delete wire should not generate any more NullPointerEx.

F118
  fixed double insertion of WireSegments into the object list in
  CreateSignalCommand and AddSegmentToSignalCommand introduced by N105

F117
  fixed Signal external representation (double/multiple usage of Vcc/Gnd
  components)

F116
  fixed Signal addSegment() method from N105

N115
  new class
  hades.models.fsm.FsmWrapper
  first version

N114
  command line arguments for help, debugging, and initial window size. Try:
  java hades.gui.Editor -help


06.11.97

N113
  new classes and Symbols:
  hades.models.io.Pullup
  hades.models.gates.InvSmall

N112
  new interfaces to signal SimObjects which act as hierarchy connectors
  like Ipin and Opin:
  hades.models.InputConnector
  hades.models.OutputConnector

F111
  fixed flipflop evaluate() methods to avoid null pointers when inputs
  not connected, in classes:
  hades.models.flipflops.Dff
  hades.models.flipflops.Dffr
  hades.models.flipflops.Dffrs

F110
  fixed evaluate() methods to avoid null pointers during elaborate() in
  classes hades.models.ttl74.SN7449 and SN7449Pinout

F109
  new Symbol for class hades.models.gates.Mux21 with all Ports on 1/4 inch grid

F108
  fixed bounding box calculation for 'zoom fit' command

N107
  added command class 'MoveToPositiveQuadrantCommand' 
  to guarantee that all objects of a Design fit into the positive
  coordinate quadrant (especially useful for xfig export).

N106
  changed Signal graphical representation completely.
  All Signal are now constructed from separate two-point WireSegments.

N105
  allow Signal 'add segment' between vertices. 
  Fixed wire redraw during 'create' and 'add segment' operations.

N104
  allow 'unconnected' Signal creation, both at wire end (shift+click)
  and wire start ('W' bind key) points.

N103
  new Methods 'getEuclideanDistance()' in hades.symbols.WireSegment
  and 'findNearestWireSegment()' in hades.gui.Editor
  to better support the Signal 'add segment' command.

N102
  new animation-redraw model for JavaFIG/HADES.
  interface javafig.canvas.SyncPainter

N101
  split InteractiveSimKernel into:
  hades.simulator.RealTimeSimKernel             (as in 0.42)
  hades.simulator.InteractiveSimKernel          (freeze time if idle)

F0100
  new method 'processPendingRepaints()' in hades.simulator.SimKernel
  to support synchronous animation. Not yet fully functional.


----------------------------------------------------------------------
verion 0.42 and previous

* no revision info available
