                                   ChangeLog
                                  -----------
Start Date  : 12/08/2004
Last Update : Refer below

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

gSpiceUI - A Graphical User Interface (GUI) to various freely available Spice
           electronic circuit simulators.

Author : Mike Waters
Email  : M.Waters@bom.gov.au

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

2009-09-14 : M.Waters

 * Released version 0.9.98.
 * BugFix : In the <root>/Makefile the "install" target had the files ReadMe
            and Install in upper-case which caused the install to fail. Bug
            found by Werner H.
 * BugFix : For NG-Spice simulations columns of results where lost if more than
            three parameters where derived. Class CmdNgSpiceOPT can now set an
            appropriate page width for the number of derived parameters.
 * Updates to the text files : Authors, ChangeLog, Install, ReadMe and ToDo.
 * Add a new command line option "-c" to partially rebuild/clean the
   configuration file ie. ~/.gspiceui.conf.
 * BugFix : The command line processor was not functioning properly when the
            option "-g" was specified without an argument.
 * Some updates to the installation instructions (ie. Install).
 * BugFix : Gaw was used regardless of the setting in the Preferences dialog.
 * In <root>/src/Makefile the debug flag was set by default. This meant that
   the resulting binary was much larger than necessary. The debug flag is now
   clear by default.
 * There is a new parameter in the preferences dialog which allows the results
   precision to be specified; a lower value means the raw data is easier to
   read but a higher value provides for greater resolution.
 * Brought back the component names in the NG-Spice results column labels.
 * Much of the implementation of the method bMakeArgLst( ) in classes PrcGnuCap
   and PrcNgSpice has been moved to the base class PrcSimrBase.
 * The gSchem ".sym" files in the <root>/lib/ directory where mistakenly
   omitted from the last release.
 * Bug fixes.

2009-09-11 : M.Waters

 * Released version 0.9.97.
 * Data is now transferred from a NG-Spice simulation object to a GNU-Cap
   object (and visa-versa) by design rather than happenstance.
 * DlgPrefs is no longer an attribute of FrmMain but is created when needed.
 * Tidy up PrcGNetList class source files.
 * Some changes to the installation instructions for wxWidgets (ie. Install).
 * Remove the restriction that the transient analyse must have a signal source.
 * Modified the class DlgGcpCfgGEN so that it is derived from wxDialog only and
   not CmdGnuCapGEN as well.
 * Modified the class DlgGcpCfgOPT so that it is derived from wxDialog only and
   not CmdGnuCapOPT as well.
 * Modified the class DlgNgsCfgSrc so that it is derived from wxDialog only and
   not CpntNgsIndSrc as well.
 * Modified the class DlgNgsCfgOPT so that it is derived from wxDialog only and
   not CmdNgSpiceOPT as well.
 * BugFix : The temporary file management strategy indicator wasn't being
            stored in the configuration file. Changes to FileTasks class and
            DlgPrefs class.
 * Modified the Component class to handle TABs as field separators in component
   definitions.
 * Updates to the About dialog.
 * Updates to the command line usage message.
 * Update the "tar" target in the project root Makefile.
 * Modified DlgNgsCfgOPT so that it inherits CmdNgSpiceOPT instead of having an
   instance as an attribute.
 * Modified DlgNgsCfgSrc so that it inherits CpntNgsIndSrc instead of having an
   instance as an attribute.
 * Updates to the class ConvertType. Can now specify a resolution for
   conversions from floats to strings.
 * Updates to the About dialogue contents particularly the licence details.
 * Major re-think and overhaul of the Simulation class to make it easier to
   understand and maintain. It's been replaced with the structures SimnBase,
   SimnNgSpice and SimnGnuCap.
 * Many classes have been re-defined as structures so that most of they're
   attributes have public access. This increases they're easy of use since
   attributes can be accessed directly rather than via inline function calls.
   (It would be nice if C++ had a mechanism for defining attributes as
   read-only to the outside world.)
 * Created a new simulation structure SimnBase from which the new structures
   SimnNgSpice and SimnGnuCap inherit. These structure replace the single
   Simulation class which had become far too complicated.
 * Simplify NetList class.
 * Updated Component class, changed type to structure, it now permits public
   access to most attributes.
 * Added units of pico-seconds (psec) to the units of time in class ChoUnits.
 * Transient analyses may now be run without having to specify a sweep source.
 * Integrated the command classes into the simulation engine process classes.
 * Created new command classes CmdGnuCapOP, CmdGnuCapTR and CmdGnuCapFO for
   parsing and formatting GNU-Cap OP, Transient and Fourier commands.
 * Created new command classes CmdGnuCapPR and CmdGnuCapGEN for parsing and
   formatting GNU-Cap Print and Generator commands.
 * Created new command classes CmdNgSpicePR for parsing and formatting NG-Spice
   Print commands.
 * Created a new structure CpntNgsIndSrc which inherits from the Component
   structure. It processes NG-Spice independent voltage or current source
   definition commands.
 * And others things that I've forgotten.

2008-02-29 : M.Waters

 * Released version 0.9.65.
 * A schematic editor (ie. gSchem) can now be envoked from within gSpiceUI via
   the menuing system or the tool bar.
 * Implemented test utilities in all command classes to facilitate debugging.
 * Create new command classes CmdGnuCapDC and CmdGnuCapAC for parsing and
   formatting GNU-Cap DC and AC commands.
 * Created new command classes CmdNgSpiceAC and CmdNgSpiceTR for parsing and
   formatting NG-Spice AC and Transient analysis commands.
 * Modify class PrcNgSpice to use the command classes ie. CmdNgSpiceDC, etc.
 * Created a new class PrcGaw to interface to the waveform viewer Gaw (which is
   a rewrite of gWave).
 * One of two waveform viewers may now be specified by the user via the command
   line or the preferences dialog ie. gWave or Gaw. This preference is also
   stored in the configuration file and so need only be specified once.
 * Bug fixes.

2007-10-25 : M.Waters

 * Released version 0.9.55.
 * Various improvements to src/Makefile.
 * Changed the name of the Options menu to Settings to prevent confusion with
   the SPICE OPTIONS command.
 * Fixed a bug in the "make deps" process.
 * Fixed a bug where a reload operation was clearing the units of the stop
   value in the NG-Spice DC analysis. Also fixed many other bugs associated
   the reload operation in all other analysis panels.
 * Minor overhaul of the class PnlNgSpiceDC. Will do the same to all other
   analysis panel classes in the fullness of time.
 * Fixed bug 1759886 "make install: error if ../share/man/man1 is missing"
   submitted by Werner H.
 * Added the file TypeDefs.hpp to contain mainly the enumerated type
   definitions used throughout gSpiceUI.
 * First cut at controlling the fonts used by gSpiceUI.
 * Added a Clear button to the GNU-Cap Generator Setup dialog and the NG-Spice
   Signal Source Setup dialog.
 * A new class CmdNgSpiceDC has been introduced for parsing and formatting
   NG-Spice DC analysis commands. Ultimately all analysis commands will be
   processed using this mechanism.
 * The recommended version of the wxWidgets library is still v2.8.x but work
   has been done to improve support for v2.6.x. It seems that wxWidgets v2.8.x
   has not yet been sufficiently widely adopted to make it a requirement.
 * The src/Makefile has been modified so that the version of the wxWidgets
   library to compile against may be specified via the make command line or
   within the Makefile itself.
 * An upper limit of 9 characters has now been imposed on the number of
   characters which may be entered into a SpinCtrl object.
 * Fixed several bugs associated with the SpinCtrl class.
 * Bug fixes.

2007-07-05 : M.Waters

 * Released version 0.9.33.
 * Added a sinusoid function to the NG-Spice signal source configuration
   dialog.
 * Tidy up of the Makefiles.
 * The title line/s in user generated circuit description files are now
   preserved in the simulation file generated by gSpiceUI. Requested by
   Andres M.
 * Fixed a bugs in the GNU-Cap DC and AC command parsers causing them to break
   when the start and stop sweep values where equal.
 * Adjustments to the size and position of display components.
 * For GNU-Cap the option BASIC has been appended to all analysis lines to
   suppress the use of alpha abbreviations instead of an exponent eg. 3.1u now
   becomes 3.1E-6. Requested by Andres M.
 * Introduced an .OPTIONS button on each analysis panel and removed the
   .OPTIONS option in the Options menu.
 * Added tooltips to the NG-Spice source component setup dialog and the GNU-Cap
   generator component dialog.
 * Improvements to src/Makefile.
 * NG-Spice negative node values in .PRINT statements were not processed
   correctly. Eg. PRINT TRAN V(0,1) V(0,2) (2 parameters) is interpreted as
   PRINT TRAN (-V(1)-V(2)) (1 parameter); I've found through experiment that
   PRINT TRAN 0-V(1) 0-V(2) results in the correct intepretation. Fixed.
 * Fixed warnings generated by GCC v4.1.1.
 * Added tool tips to the OPTIONS line setup dialogs.
 * gSpiceUI can now be compiled against wxWidgets v2.8.4.
 * Addition of a man page. Minor updates to the documentation.
 * The SpinCtrl control is now right justified.
 * Implement the application preferences dialog.
 * Some modifications to the PnlValue class.
 * The main frame's system close button now works.
 * Automated the creation of dependencies. Added target "deps" to the Makefile
   in the C++ sources Makefile. This target creates the file Makefile.deps
   which contains a list of dependencies which are included in the Makefile.
 * Many bug fixes.

2006-10-26 : M.Waters

 * Released version 0.8.90.
 * Some modifications to the PnlValue class.
 * Fixed some subtle bugs in the SpinCtrl class.
 * The SpinCtrl class can now display positive floats with an exponent.
 * Added NG-Spice OPTIONS line setup dialog.
 * Added GNU-Cap OPTIONS command setup dialog.
 * Added selection to Options menu to access OPTIONS setup dialog.
 * All include file paths are now from the source directory. Allows reuse of
   file names.
 * Added TeraHz, kV and kA to the class ChoUnits.
 * If during installation $(INSTALLDIR)/bin doesn't exist it is created.
 * Bug fixes.

2006-05-16 : M.Waters

 * Released version 0.8.55.
 * Fixed fault where source component requested for NG-Spice temperature sweep.
 * Fixed some faults in the parsing of floating point numbers into mantissa and
   exponent (ConvertType.cpp).
 * The last line of the console output was missing if it didn't end in a new
   line character.
 * The output from gNetList is now searched for errors and the user notified if
   any are found.
 * The application initialization process has been overhauled. It's still not
   perfect but is an improvement.
 * A progress dialog is displayed while the simulation engine is being changed.
 * The source and generator dialogs now do some validity checks before
   accepting the user settings.
 * Bit rot in PrcBase::Print( ) meant that the text controls weren't always
   being loaded properly.
 * The Simulation text control wasn't being updated when a simulation was run.
 * Bug fixes.

2006-02-17 : M.Waters

 * Released version 0.8.36.
 * The rogue log file going by the name prcbase.log which some times appeared
   has been tracked down to the class PrcGNetList. The log file name wasn't
   being set properly and sometimes wasn't deleted when no longer needed.
   Both of these problems have been rectified.
 * The technique used to clear the save file in the function
   PrcSimrBase::bSaveOutput( ) has been much improved. Large simulations
   should now run noticably faster.
 * The function bExec( ) has been moved from the classes PrcGnuCap and
   PrcNgSpice to the class PrcSimrBase.
 * Cleaned up the code that formats NG-Spice results (PrcNgSpice.cpp).
 * Cleaned up the code that formats GNU-Cap  results (PrcGnuCap.cpp).
 * A new panel has been added to the GNU-Cap notebook for Fourier analysis.
 * Options for displaying the GNU-Cap and NG-Spice manuals have been dropped
   from the Help menu.
 * An alternative installation directory may now be specified via the base
   Makefile. Refer to text file INSTALL for a complete description.
 * Include file wx/image.h added to HelpTasks.hpp for MAC platforms as a result
   of feedback provided by Anthony W.
 * Crash caused by an attempt to access the first character in an empty string
   fixed as a result of feedback from Anthony W. - functions modified were:
     PnlNgSpiceDC::InitSwpUnts( ) and PnlGnuCapDC::InitSwpUnts( ).
 * Crash caused by attempt to set the value of a non-existent display object
   fixed as a result of feedback from Anthony W. - function modified was:
     PnlGnuCapFO::CreateOutputs( ).
 * The tool bar help icon was found to be malformed and has been fixed as a
   result of feedback from Anthony W. - file modified was:
     icons/help.xpm
 * Additions to the documentation.
 * Bug fixes.

2005-11-29 : M.Waters

 * Released version 0.8.08.
 * Documentation is now included in the install process.
 * Added a tool to the tool bar linking with the gSpiceUI manual.
 * The gSpiceUI manual can now be accessed from the Help menu.
 * The application main frame close box has been disabled because when used
   configuration data isn't recorded. I will fix this at some later date.
 * Cleaned up the code run when the simulation engine selection changes.
 * Built using the infamous gcc version 4.0.1 compiler. One warning produced
   which has been fixed.
 * Bug fixes.

2005-11-16 : M.Waters

 * Released version 0.7.93.
 * If a net list or schematic is open on exit that same file will be opened
   next time gspiceui is started.
 * The open net list and import schematic dialogs now remember the last
   directory accessed (these values are stored in the configuration file).
 * Added two minor mods. for clean compilation under Sun Solaris.
 * A alternative configuration file may now be specified via the command line
   using the -r option.
 * The relationship between the class AppGSpiceUI, FrmMain and CmdLinePcr has
   been simplified. Should prevent compiler errors associated with circular
   includes.
 * Continued implementation of the configuration file mechanism.
 * The development status has reverted to Alpha since fundamental structural
   changes are still being made and are still required.
 * The command line option "-t" which sets the temporary file management
   strategy hadn't been implemented, it has now.
 * The command line option "-d" which sets the number of lines to display in
   text controls has been dropped.
 * The main frame is now resizable.
 * Changed the layout of the main frame to make better use of the available
   space.

2005-09-03 : M.Waters

 * Released version 0.7.80.
 * Rectified some bugs associated with the status bar. It now works correctly.
 * Commenced implementation of a configuration file mechanism. The
   configuration file name is ".gspiceui.conf" and is placed in the user's home
   directory.
 * The position of the main application frame is now recorded in the
   configuration file. At startup gSpiceUI attempts to position itself where it
   was last placed.
 * In class FrmMain the function OnRun( ) has been tidied up.
 * If required a .WIDTH card is now added to NG-Spice decks so that more than
   5 columns of data may be output in the results files.
 * Net list files generated by gSpiceUI no longer have "gspiceui" appended to
   the file name eg. for a schematic "circuit.sch" the net list file name will
   be "circuit.ckt" and no longer "circuit.gspiceui.ckt".
 * The text control notebook page "Results" has been replaced with two pages
   "GNU-Cap" and "NG-Spice" which display GNU-Cap and NG-Spice simulation
   results respectively.
 * Added a reference to the source schematic/s in net list files created by
   gSpiceUI. A reload operation now re-imports the schematics if this reference
   exists in the currently open net list.
 * Added GHz to frequency units.
 * Additions to the documentation.
 * Bug fixes.

2005-07-21 : M.Waters

 * Released version 0.7.56.
 * Commenced the use of layout managers to place and size display objects. This
   has been completed in the classes DlgSrcCfg, DlgGenCfg and PnlValue.
 * Development of gSpiceUI is now based on the wxWidgets library v2.6.x.
   wxWidgets library v2.4.x is no longer supported as it does not contain the
   class wxSizerFlags which is required for use of layout managers.
 * Changed references to make in all Makefiles to $(MAKE) so that gmake works
   on FreeBSD.
 * Implemented the tool bar and removed the simulation control buttons in the
   main frame.
 * Implemented the schematic/netlist reload function in the File menu and tool
   bar.
 * Created a new class NbkTxtCtls to contain all of the code associated with
   the text controls used by the FrmMain class.
 * Created a new class HelpTasks to contain most of the help operations
   required by the FrmMain class.
 * Created a new class FileTasks to contain most of the file operations
   required by the FrmMain class.
 * Discovered the wonders of compiling NG-Spice with XSpice extensions. Enables
   NG-Spice to handle POLY( ) statements eg. found in opamp models.
 * Added "*.cir" to the netlist file filters in the open dialog.
 * Added modifications suggested by Ezra ??? to remove errors when compiling
   under MAC OS.
 * Added Unicode support.
 * Bug fixes.

2005-05-18 : M.Waters

 * Released version 0.7.18.
 * Added modifications suggested by Shahab Sanjari to remove errors when
   compiling under FreeBSD.
 * Dialogue added to NG-Spice Transient analysis to allow pulse source to be
   configured by the user.
 * Spin control precision changed from one decimal place to two.
 * Fixed some minor bugs associated with the PnlValue class.
 * In the AC analysis the default step scale has been set to "Dec" and the
   default source level to 1.0V (ie. 0dBV).
 * The AC analysis complex parts radio for magnitude in dB has been changed to
   "Mag. in dBV" to highlight the units used.
 * The correct Options menu simulator item is now checked when a new
   simulation is opened.
 * The class PrcPlotter has been rename to PrcGWave.
 * Added two new operational amplifier models to the lib/opamp directory
   ie. LM324 (national) and LMX358 (maxim).
 * Al Davis reported that the GNU-Cap AC analysis generated by gSpiceUI was
   missing an .OP command prior to the .AC command. The operational amplifier
   models in the lib/opamp directory can now be AC analysed correctly using
   GNU-Cap.
 * Additions to the documentation.
 * Bug fixes.

2005-04-19 : M.Waters

 * Released version 0.7.01.
 * More than one schematic files can now be imported via the command line.
 * gSpiceUI can now be compiled using the wxWidgets library v2.5.4 but at this
   stage the GUI looks better using wxWidgets v2.5.2 or earlier.
 * Command line option added to specify temporary file management strategy ie.
   "-t <n>", delete the files automatically, prompt the user or keep them.
 * Command line options which have not yet been implemented are no longer
   displayed in the application usage message which has also been tidied up.
 * The application frame now cannot be resized using the mouse but the text
   control display area can be resized with a new command line option "-d n".
 * The spin controls have been modified so that the units automatically change
   to the next logical value when appropriate eg. 1000.0mV rolls up to 1.0V
   and 1.0mV rolls down to 1000.0uV.
 * I have derived an opamp model on which NG-Spice can perform an AC analysis.
   The model is based on the Maxim LMX358 model. I haven't been able to find
   an opamp model on which GNU-Cap can successfully perform an AC analysis.
   So far I've tried models from National and Maxim.
 * Additions to the documentation.
 * Bug fixes.

2005-03-22 : M.Waters

 * Released version 0.6.91.
 * Added sweep step size checks when creating simulation.
 * Work has been completed on parsing basic GNU-Cap commands contained in
   circuit description files.
 * Work has been completed on parsing basic NG-Spice commands contained in
   circuit description files.
 * The command line processing code has been moved from class AppGSpiceUI to
   it's own class CmdLinePcr.
 * Fixed a bug that caused net list files to be loaded twice. Load operation
   should now be faster.
 * Fixed a bug in the spin control which caused incorrect incrementing of
   negative numbers.
 * Bug fixes.

2005-02-22 : M.Waters

 * Released version 0.6.81.
 * The log file created by gnetlist is now removed on Close or Exit.
 * Temporary files created by gSpiceUI to hold analysis results are now
   removed on Close or Exit.
 * The development status has been changed from Alpha to Beta.
 * The naming convention for the simulation file has changed from "<name>.sim"
   to "<name>.gspiceui.ckt".
 * Work has commenced on parsing SPICE commands contained in circuit
   description files. The GNU-Cap Quiescent analysis and the NG-Spice AC
   analysis are complete.
 * The circuit description files generated by gSpiceUI will now have the
   extension "<name>.gspiceui.ckt" instead of "<name>.sim".
 * The GNU-Cap Fourier analysis panel has been temporarily disabled. It is
   broken and as yet does nothing useful. It will be enabled again when it is
   fixed.
 * The spin controls have been modified so that the step increment is now
   dependent on the value shown. In most cases the control will be incremented
   or decremented by between 10% and 100% of the displayed value.
 * Sort out some bugs which have crept into the NG-Spice simulation mechanism.
 * Simulation class now inherits from NetList class. Streamlines application
   architecture.
 * Additions to the documentation eg. object model diagrams.
 * Bug fixes.

2005-01-12 : M.Waters

 * Released version 0.6.58.
 * Allow standard power supply rail labels (ie. Vcc, Vee, Vss and Vdd) to be
   used as sweep sources.
 * Move source attributes and code from analysis panel classes into base class
   PnlAnaBase to facilitate reuse and maintainability.
 * Move complex parts attributes and code into class PnlAnaBase to facilitate
   reuse and maintainability.
 * Bug fixes.

2004-12-08 : M.Waters

 * Released version 0.6.53.
 * Clean-up and re-arrange analysis notebook display objects to accommodate a
   new analysis temperature display control.
 * Implement new anaylsis temperature control.
 * Add units of radians and grad to phase values.
 * Move analysis temperature attribute and code into class PnlAnaBase to
   facilitate reuse and maintainability.
 * Improve the management of the i/o notebook text controls.
 * Additions to the documentation.
 * Bug fixes.

2004-11-10 : M.Waters

 * Released version 0.6.47.
 * Allow ".include" directives to be specified in net list files.
 * Replaced NG-Spice field identifiers in result file with component labels.

2004-11-08 : M.Waters

 * Released version 0.6.45.
 * gSpiceUI now behaves properly when sub-circuit appear in the net list.
 * As a result of the change to wxWidgets v2.5.2 the GWave process was
   broken. It now works again.
 * Multiple schematic files may now be selected and imported via the GUI but
   not yet from the command line.
 * Status line enhancements. Simulation engine is now displayed.
 * Improvements to the application architecture.
 * Plot process mechanism over-hauled.
 * New class introduced to display floating point or integer variables. It
   now behaves correctly near zero.
 * New choice control class introduced to display and process units.
 * Debug messages mechanism has been removed.
 * For the time being only one plotter process can be intiated at a time.
 * Additions to the documentation.
 * Bug fixes

2004-09-16 : M.Waters

 * Released version 0.5.76.
 * PrcGNetList.cpp : Multiple schematic files can now be imported via
   gnetlist into one netlist file.
 * gSpiceUI is now based on the wxWidgets v2.5.2 library (it may not be
   backwards compatible with v2.4.2).
 * Added Transient analysis panel for NG-Spice.
 * Added AC analysis panel for NG-Spice.
 * Makefile : "make config" is now part of "make all" because it got left
   out by some users and appeared to be a fault.

2004-08-12 : M.Waters

 * Released version 0.5.63.
 * Verbose mode option (-v) added to argument list to gnetlist.
 * Default argument in FrmMain::bImportSchem( ) was removed. Caused some
   compilers to barf.
 * Some additions to the documentation.

2004-08-05 : M.Waters

 * The initial release of gSpiceUI, version 0.5.54.

2003-08-15 : M.Waters

 * Started development of gSpiceUI.
