			Electric change log


************************* Version 6.00: Released May 5, 2000 *************************

BUG: Floating-point and integer multiplies come out differently (floating point
     is more accurate, and only sometimes slower).
FIX: Always use floating point.

BUG: Some active-to-active spacing errors not detected (in MOSIS CMOS Submicron).
FIX: Modified tables to include 3-lambda spacing for *ALL* active layers (P-active,
     N-active, and P-active-well).

BUG: EDIF input fails to create icons properly.
FIX: In "ioedifi.c:io_edmakeiconfacet()", use proper schematic parts (not "Icon_pin").

BUG: Segment drawing from one node to another may create 3 arcs if the cursor is
     in an unusual place.
FIX: Disabled 3-arc creation during segment drawing.

BUG: Auto-router places arcs in facets that are locked.
FIX: In "routauto.c:ro_autostitch()", check for locked parent before calling
     "ro_checkstitching()".

IMP: "New Facet Instance" and other facet dialogs now default to the currently
     selected facet instance (if any).

BUG: Changing a port name isn't considered a significant change, and undo
     skips over it.
FIX: In "dbchange.c:db_reversechange()", check for changes to "protoname"
     or "textdescript" on ports.

IMP: Changed "<<" button in "Quick Key Options" to "Remove" to be more clear.

BUG: UNIX may crash when deleting windows.
FIX: In "graphunixx11.c", must clear "firstmenu" field of WINDOWFRAME after
     creation.

IMP: Automatically-generated port names now use the "_" character instead of '-'.

BUG: Simulation window limits signal names to 14 characters.
FIX: In "simals.h", modified declaration of CHANNEL->name, and fixed all
     code that uses it.

BUG: When simulating with too many signals, names are too close.
FIX: In "simwindow.c", recompute text height when drawing symbol names.

BUG: Copying facets may crash if there is hierarchy descent information.
FIX: In "dbnoproto.c:db_copyxlibvars()", must only copy nodeinst pointer if
     it is in the current facet.

BUG: Rotation of arcs that are not connected in their port center is incorrect.
FIX: In "conlay.c:cla_modrigid()" and "conlay.c:cla_modflex()", must use actual
     rotation information, not the port center routine "cla_oldportposition()".

IMP: Added option to Network consistency checker to use port names.

BUG: Network consistency checker fails when there are too many power and
     ground ports in the schematic.
FIX: In "netflat.c:net_buildpseudo", must add extra code at the start to
     find power and ground nets and include them.

IMP: Separating character in port names is now variable.  Modified
     "usrstatus.c:us_uniqueportname()" and "usrnet.c:us_copyvars()".

IMP: Electric is now owned by Static Free Software.

************************* Version 5.7.5: *************************

BUG: VDD and Ground may get reversed in the generated VHDL (during simulation).
FIX: In "vhdl.c:vhdl_addrealports()", must do 5 iterations for input, output, power,
     ground, and (finally) everything else.

BUG: Printing on Windows prints the grey background.
FIX: In "graphpccode.cpp:gra_printwindow()", force the background to white before printing.

IMP: Unified terminology in code and documentation: "traces" are now called
     "outlines".

IMP: Added "Erase Geometry" to truncate arcs at edge of selection.

IMP: Mimic stitching caches information to run faster.

BUG: Occasional warning that "node has no name".
FIX: In "network.c:net_nameallnodes()" must name nodes that have exported ports.

IMP: Now reuse simulation waveform windows instead of creating new ones.

IMP: Modified UNIX display rules so that "dimmed" edit fields are fully
     visible, but not changeable.

IMP: DRC errors are now sorted by layer, so that important errors come first.

IMP: ERC now reports the number of transistors and networks.

IMP: Now have ability to dump facet information to a disk file.

BUG: Long operations give no indication that they are working.
FIX: In "graphXXX.c:checkforinterrupt()", now set the hourglass cursor.

BUG: When wiring two nodes, the "tic-tac-toe" board rules for when to use
     "Z" connections are ignored if one node has a directional port.
FIX: In "usrarc.c:us_makeconnection()", remove the directionality test.

IMP: When doing "get info" on two nodes, the distance accounts for facet
     centers.

IMP: "Array" dialog now remembers previous settings.

BUG: When facet changes have been disallowed, copying is also disallowed.
FIX: Modified "usrnet.c:us_copyobjects()" to allow the operation.

BUG: "Cleanup pins" flags the Facet-Center node as zero-size.
FIX: Ignore this node during the check.

BUG: When alternately simulationg schematics and layout of the same circuit,
     the VHDL is reused.
FIX: Now tag the VHDL with a comment stating the source, and use this comment
     to detect recompilation.

BUG: In simulation, the "main" cursor text can get cut off.
FIX: No limit on the text size in "simwindow.c:sim_window_drawlstring()".

BUG: Deleting a text facet that is being displayed may crash.
FIX: In "usrcomek.c:us_killfacet()" must adjust window sizes to account for
     new type of window.

BUG: DRC violations between polysilicon and active are not detected.
FIX: Fixed connected table in "tecmocmossub.c".

IMP: When doing a "get info" on a facet instance with a facet center, that center
     location is used instead of the true instance center.

IMP: Can now type "Control-C" to interrupt on UNIX.

BUG: On UNIX, with Athena widgets, a narrow screen may cause a crash if the
     pulldown menus are too wide.
FIX: In "usrmenu.c:us_popupmenu()", change the line:
		if (us_pmcur.posx+us_pmcur.sizex >= swid) us_pmcur.posx = swid - us_pmcur.sizex;
     to:
		if (us_pmcur.posx+us_pmcur.sizex+MENUSHADOW >= swid)
			us_pmcur.posx = swid - us_pmcur.sizex-MENUSHADOW-1;

BUG: When networks are compared, if they fail but all in subfacets, it reports success.
FIX: In "netdiff.c:net_compare()", must check "insub" as well as "found".

BUG: Networks may be incorrect when there are icons.
FIX: In "network.c:net_recursivelyredo()", must redo network numbering for
     contents and icon.

BUG: Corrupt libraries cause crashes when read in.
FIX: Made "iobinaryi.c" more robust when reading data.

BUG: Flipflops cannot be simulated.
FIX: Now properly link the JK and D flipflops to the built-in functions in
     "simalsuser.c".

BUG: After a click in the component menu, another click there places the component.
FIX: Now check for repeated clicks in component menu and abort the placement.

IMP: New option to "array" to make diagonal linear arrays.

IMP: New command to deselect all selected arcs.

IMP: New commands to make all selected objects easy/hard to select.

IMP: DRC and ERC now tell you how to abort when they start processing.

BUG: NCC crash.
FIX: In "netdiff.c:net_allalike()", must test for "p == NOPCOMP" before
     checking the value of "p->function".

BUG: Copying and pasting with multiple "invisible pins" may hang the system.
FIX: In "usrnet.c:us_copylisttofacet()", change the inner loop:
		for(i=0; i<ni->numvar; i++)
     to:
		for(j=0; j<ni->numvar; j++)
     including all uses of "i" in and after that loop.

BUG: Adding a port to a facet with an equivalent icon may hang the system.
FIX: In "usrnet.c:us_findnewplace()", change sorting test from:
		if (arr[i-1] < arr[i]) continue;
     to:
		if (arr[i-1] <= arr[i]) continue;

IMP: Made layer pattern changes be savable with the options.

IMP: Rewrote polygon merging code to be able to handle nonmanhattan polygons
     and polygons with holes.

BUG: After renaming an arc, the component menu for that arc is broken.
FIX: In "usrcomrs.c:us_rename()" must rebuild component menu after renaming arc.

BUG: MOSIS CMOS Submicron reverses well separation rules.
FIX: Should be 18 for unconnected, 6 for connected.

IMP: Mimic Stitcher now correctly determines the size of each wire it routes.

BUG: "Mimic Stitch Now" may fail to find a wire to stitch.
FIX: In "rout.c:ro_newobject()" and "ro_killobject()", do not clear the information
     about past arcs if it already exists.

IMP: "List Facet Dates" now reports the usage of each facet, and some option bits.

BUG: When playing back a logged session that had disk files saved, system crashes.
FIX: In "graphpccode.cpp" and "graphunixx11.c", routine "us_logplayback()",
     must save "us_logplay" pointer, reset it to zero, and restore it after reading
     libraries.

BUG: Recursive structures are allowed if they use icon views.
FIX: In "dbmath.c:isachildof()", must check icon views as well.

IMP: Made "center-based primitives" the default.

BUG: Rotate command crashes if only wires are selected.
FIX: In "usrcomrs.c:us_rotate()", test for "nicount" equal to zero.

BUG: Turning the incremental DRC off is not remembered across runs.
FIX: Added shadow variable "DRC_incrementalon" to control the state of the
     DRC tool.

IMP: Added detection of power and ground ports to ALS so that layout can be
     simulated.

IMP: Replaced "Mathematica" with "Java".

IMP: Added command to bring up user's manual in a browser.

BUG: Hierarchical DRC is not interruptable
FIX: Added more calls to "stopping()" in "drcbatch.c".

BUG: Cannot type interrupt key on Windows.
FIX: Added code to handle "windows-c" key for interrupts.

IMP: The "PLA Generator" tool is now the "Generator" tool, and has a "Pad Frame"
     generator in it.

IMP: Rearranged DRC menu to be more sensible.  New command: "Clear Ignored Errors".

BUG: When window is moved for too long on Windows, system beeps.
FIX: In "graphpccode.cpp:gra_addeventtoqueue()", see if event repeats the previous one
     when queue overflows.

IMP: "Rename Object" is now a more sensible dialog, not two separate ones.

BUG: When extracting a node instance, and the "Extract copies ports" is checked,
     new port names are nonunique.
FIX: In "usrnet.c:us_yankonenode()", made the port names unique, and also only
     exported them if they are not connected or exported.

BUG: Creating new version of facet, or duplicating facet may crash.
FIX: In "dbnoproto.c:copynodeproto()", change the line:
		if (ni->proto->primindex != 0) lnt = ni->proto; else
     to:
		if (ni->proto->primindex != 0 || destlib == NOLIBRARY) lnt = ni->proto; else

IMP: Changed Hierarchical DRC so that it handles all nonmanhattan situations.

IMP: Changed Hierarchical DRC so that it doesn't give a dialog (but can with
     an option setting).

BUG: Network options on unification are not saved across runs of Electric.
FIX: In "network.c", must add the routine "net_readlibrary()" to pick up
     cached option variables.

IMP: Mimic stitcher now has more options for which stitches to allow, and can
     also work interactively, prompting for possible stitches.

IMP: Grid now allows asymetric spacings for bold dot separation.

IMP: "List Exported Ports" now provides coordinates, sorts by name within type.

BUG: When wiring ports on facets, cursor position doesn't affect wire location
     in port.
FIX: In "usrarc.c:us_directarcinst()", must use "prefx/y" instead of node center
     when determining port location.

IMP: Incorporated new MOSIS CMOS Deep rules into the submicron process.
     Gates of transistors now extend 2.5 beyond diffusion (used to be 2)
     Contact cuts and vias are now spaced 4 apart (used to be 3).

BUG: Network consistency checker considers components equal if they are the only
     two with a function/wiring count, even if the wiring is wrong.
FIX: In "netdiff.c:net_compare()", do not ignore buckets that are singletons, but
     ignore buckets with less than 2 components.

BUG: Network consistency checker doesn't use port names to resolve automorphic nets.
FIX: In "netdiff.c:net_diffwires()", only compare "NEGATED" factor, and compare
     port names if both wires have EXPORTED factor.

BUG: Cannot cancel "Duplicate Current Facet" command.
FIX: In "evemenus.mac" must test for empty return value from new name prompt.

BUG: Mixing colors twice while technology editing causes a crash when the
     window closes.
FIX: In "usredtecc.c:us_teceditcolormap()", remove the last two lines that
     deal with "el_curwindowpart->termhandler" and replace them with the contents
     of "us_teceditmaptermhandler()".

BUG: "Show Facets Graphically" may crash on libraries with icons.
FIX: In "usrgraph.c:us_graphfacets()", when finding the top-level facets, must
     consider "np" in addition to "truenp".

IMP: Added "Text (Layout)" command of "New Special Object" to convert text to layout.

IMP: Made "Measure Distance" more complex: "x" resets start point, "ENTER" ends.

IMP: Moved facet-related items from "New Node Options" to "Facet Options".

BUG: Crashes when a UNIX dialog has an empty popup.
FIX: In "graphunixx11.c:DiaSetPopup()", add an empty entry if count is zero.

IMP: Added mouse clicks to do "special" select with other options (toggle, another).
     Rearranged mouse buttons to be uniform across all platforms.

BUG: When creating 3-wires to zig-zag inside the area of two nodes, angle of middle
     wire is ambiguous.
FIX: Modified "usrarc.c:us_twobend()" to make the middle wire shorter.

IMP: Modified "Show Exported Ports" to show only those that are in the window.

IMP: Added "Select All Easy" and "Select All Hard" to select just the easy or hard
     to select objects.

BUG: Highlighting is incorrect when going down or up the hierarchy.
FIX: In "usrwindow.c:us_switchtofacet()", remove the call to "us_showallhighlight()".

IMP: Added Electrical Rules Checker tool.

BUG: "Compute from Primaries" in the Color Mix dialog may go into an infinite loop.
FIX: In "usrdiacom.c:us_colormixsmoothcolors()", change the line:
		if (height[i] < height[i-1]) continue;
     to:
		if (height[i] <= height[i-1]) continue;

BUG: Well and Substrate contacts in MOSIS CMOS Submicron have incorrect multi-cut
     rules (when 10 wide, 2 cuts are allowed but should only fit 1).
FIX: Set "tecmocmossub.c:mocmossub_psub.f3" and "tecmocmossub.c:mocmossub_nsub.f3"
     to K2, not H1.

IMP: Added ability to drag window partition dividers and adjust the proportions.

BUG: Mimic router creates wires over existing ones if the existing ones
     have a break in the middle.
FIX: Changed so that it avoids making wire if there is existing arc of the same
     type running out of either node *TOWARD* the other.

IMP: Node Get-Info dialog now defaults the list of ports so that the current
     port is selected.

IMP: Added command to delete all ports on selected nodes.

BUG: When re-exporting all ports, may not work for a large number of ports.
FIX: In "usrnet.c:us_reexportport()", must allocate string before calling
     "us_uniqueportname()" with it.

IMP: Added sliders on the bottom and right side of edit windows.

BUG: If two windows are open, and hierarchy is being traversed in each one, then
     "Up Hierarchy" always goes to last "Down Hierarchy", even if it is from the
     wrong window.
FIX: Removed "facet stack" concept and now store hierarchy path on each facet.

BUG: Text selection moves the text easily.
FIX: In "usrtrack.c:us_findiup()", check for jitter in drag state 3.

BUG: Signal selection may cause crash when simulator is active.
FIX: In "simspicerun.c:sim_spice_signalname()", must test that network has name before
     using it.

BUG: Two nodes with perfectly aligned ports may get connected with 3 arcs instead of 1.
FIX: In "usrarc.c:us_directarcinst", must find closest point 3 times, not 2, to make
     sure the points are aligned.

************************* Version 5.7.4: Released 3/20/00 *************************

BUG: Memory may leak in variable allocation.
FIX: In "dbvars.c:db_setvalvar()", must deallocate previous variable if new change
     is not undoable.

BUG: "mocmossub" serpentine transistors are incorrect (geometry and ports).
FIX: Modified descriptors, and added "f5" and "f6" to TECH_NODES structure
     to more generally describe ports.

BUG: "mocmos" and "mocmossub" technologies don't have "POLYGONAL" flag set on
     their pure-layer nodes.
FIX: Added it.

BUG: SPICE output lists both power and ground on the same net.
FIX: In "simspice.c:sim_spicewritefacet()" remove the line "tempnet->netnumber=0"
     in the code block headed by "if (state == SPICEPOWER)".

IMP: CIF input now only complains about an unknown layer once.

IMP: Added session logging for Windows and UNIX.

IMP: Changed function of Artwork arcs from Nonelectrical to Unknown so that they
     can carry signal.

BUG: Arcs that run inside of a node (from one port to another on the same node)
     adjust incorrectly when the node moves.
FIX: In "conlay.c:cla_modwithin()" must count such arcs only once when adjusting.

IMP: Added command to automatically generate implant coverage polygons.

IMP: When a name is selected in the "FacetStructure" facet, that name is the default
     for subsequent "delete facet" and "list facet usage" commands.

BUG: When selecting objects up very close, the grid alignment may jump to an
     unwanted object.
FIX: Avoid grid alignment while selecting.

BUG: If two windows are up, focus is in one, but selection in another, operations
     happen in the wrong window.
FIX: Modified object selection code to return the facet containing the selection.

BUG: Windows version crashes on startup if cursor is over component menu.
FIX: In "graphpccode.cpp" modified tracking code to detect startup state.

IMP: Added "power" and "ground" models to ALS simulation so that transistor-level
     schematics can be simulated.

IMP: Now have the ability to set the number of lambda per pixel when tiny facets
     get hashed out.

BUG: Clicking outside but very near to an object selects the object.
FIX: In "usrtrack.c:us_finddoibegin()" and "usrtrack.c:us_stretchdown()", removed
     calls to "gridalign()".

BUG: Technology edit produces wrong colors, doesn't interact properly with many
     layer fields, doesn't handle newer layer fields.
FIX: Fixed "usredtec?.c"

IMP: Added routines "layerismetal()", "layerispoly()", and "layeriscontact()"
     to identify layer functions without enumeration.

IMP: Improved hierarchical DRC to handle minimum width, notch rules, and much more.

IMP: Changed design rules for MOSIS CMOS Submicron so that N-to-P spacing
     (well and select) are zero.  This replaces the rule that separates
     N-active and P-active by 12.  Many other rules changed as well.
     Generalized multiple-metal rules, too.

BUG: Nonmanhattan geometry sometimes produces corrupt database.
FIX: Modified database routines to set end shrink value properly.

BUG: Simulation doesn't cross icon boundaries (doesn't simulate contents of icon).
FIX: In "vhdl.c:vhdl_generatevhdl()", check for contents when descending hierarchy.

IMP: Added "cell library" indication to facets so that those from a standard
     cell library can be excluded from lists.

IMP: Now an extra level of messages which show, but do not force the messages
     window to the top.

IMP: "Peek inside highlighted" now takes arbitrary selection and shows the
     bounding box's contents.

BUG: If two nodes share the port description list in the technology, their ports
     will also be shared, and be incorrect in batch DRC.
FIX: Must have separate port descriptions for each primitive.  Did this for
     "artwork" and "generic".

IMP: Removed "glyph" nodes from the generic technology.

IMP: Modified "rotate" and "mirror" commands to handle "sensibly" argument which
     specifies a rotation about the grab-point if it is a facet with a facet-center.

IMP: Added "Duplicate Facet" command for copying the current facet to a new cell name.

BUG: When 2 windows are shown, clicking to place a component and then placing it
     in the NON-current window puts the component in the current window instead.
FIX: In "usrcomcd.c:us_create()", recalculated "curfacet = us_needfacet()" after
     the call to "trackcursor()"

IMP: Added the ability for mimic routing to mimic arc deletion.

IMP: Added the abililty to make nodes and arcs "hard to select", forcing special-
     select in order to get them.

IMP: Added "Compute from Primaries" button to color mixing dialog so that all
     combinations of the transparent colors can be automatically generated.
     Modified default color maps to use these results.

BUG: Unable to set the arc angle in the "New Arc Options" dialog.
FIX: Modified "usrdiacom1.c:us_defarcdlog()".

IMP: Facet-Center node can now be stretched to define an area which is for arrays.
     Modified "tecgen.c" and "usr.c".

BUG: "Annotate Delay" crashes.
FIX: In "simalscom.c:simals_getcellinstance()", fixed code that descended to
     the bottom of the hierarchy.

IMP: Arcs connecting to wide nodes are now widened appropriately.  Modified code in
     "usrarc.c" and "usrcomcd.c".

BUG: Wide arcs may be placed incorrectly.
FIX: In "dbmath.c:reduceportpoly()", must reverse max/min calculation.

BUG: Well and Substrate contacts in the MOSIS CMOS Submicron technology have ports
     that are too big.
FIX: Changed "IN5H" to "IN6H" in "tecmocmossub.c:mocmossub_psub_p[]"
     and "tecmocmossub.c:mocmossub_nsub_p[].

IMP: When dragging objects to the edge of the window, window now shifts automatically.

IMP: Added multiple windows on UNIX, with a separate window for the components menu.

BUG: Multiple changes made in a single change batch may not constrain properly.
FIX: Moved code to clear "changeaddr" field from "dbchange.c:db_endbatch()" to
     "conlay.c:cla_layconsolve()".

BUG: Cannot wire left side of MUX primitive in Schematics technology.
FIX: In "tecschem.c:sch_shapeportpoly()", change the line:
		xposition = -K4;
     to:
		if (index != NMUX) xposition = -K4; else
			xposition = -(ni->highx - ni->lowx) * 4 / 10 * WHOLE / sch_tech->deflambda;

IMP: Ability to change primitives so that they are center-based, instead of
     their lower-left corner.

IMP: Ability to make "constrained move" the default interaction.

IMP: Added new button: "Rectangle Zoom" which does an area-select and a zoom to
     highlighted in a single operation.

IMP: Extended "Copy, "Cut", and "Paste" commands to handle circuitry.

IMP: "Change" command now has a "connected" option to change all connected objects.

BUG: Windows dialogs don't handle tab stops or arrow keys in scroll areas.
FIX: In "graphpccode.cpp:DiaInitDialog()" set WS_TABSTOP on all items, and in
     "graphpccode.cpp:gra_dodialoglistkey()" allow up and down arrows.

IMP: Added ability to view circuitry in 3D.

IMP: Modified layers in MOSIS CMOS Submicron technology so that alternate
     well/implant layers are visible.

BUG: Switching MOSIS CMOS Submicron technology from N to P well and saving
     corrupts the library.
FIX: Implemented new option: "Switch N and P Well" which changes the
     primitives and keeps the library correct.

IMP: "Change" dialog now presents list of facets when changing a facet, and
     list of primitives (with generics) when changing a primitive node.

IMP: Added ability to prevent changes to all instances in a particular facet.

IMP: "Layer Highlighting" dialog is now interactive.

IMP: "Copy from another library" now presents a "smart" dialog that knows
     what is newer.

BUG: Boxed text doesn't move properly inside its box.
FIX: In "dbvars.c:adjustdisoffset()", must push boxed edges by twice the
     distance to move the center by the proper amount.

IMP: Added "Selection Options" dialog which determines what is "easy" to
     select (facet instances, annotation text).  Also added "easy to select"
     check item to node and arc "Get Info".  Finally, made "facet center" nodes
     "hard to select" by default, but overridable in the dialog.

IMP: Spice options dialog now allows setting of layer resistance, capacitance.

IMP: Changed "Old Library" to "Change Current Library" and improved dialog.

IMP: Added the ability to use the current arc type in auto-stitching.

IMP: Limited speed of scroll bars on Macintosh dialogs (and Athena widgets)

IMP: Now have command to identify exported ports graphically.

IMP: Now have option to place facet center when creating icons.

IMP: Better SUE file reader.

BUG: Ports can be renamed to have invalid characters.
FIX: In "usrnet.c:us_renameport()", check for proper names.

IMP: PostScript output now sets proper page size for plotters.

IMP: Split "New Node Options" in half, moving those relevant to existing facets
     into the "Facet Options" command of the Facets menu.  Added options to
     control duplication (whether ports are duplicated, whether duplicated objects
     are subsequently placed in "move" mode).  Also improved "duplicate" so that
     when not in "move" mode, it remembers the last moved distance.

IMP: When two nodes are selected, and an arc is run between them, the second node
     is left highlighted.

IMP: Mimic stitching now only connects arcs that run to the same port as the
     one being mimiced (instead of all ports with the same configuration).

IMP: System now distinguishes between significant and insignificant changes
     and prompts accordingly.

IMP: "Duplicate" now copies ports.  It leaves the duplicated layout highlighted.

BUG: "Cleanup Pins" removes exported ports.
FIX: In "usrnet.c:us_cleanupfacet()", disallow removal of pins with ports.

IMP: Now can push and pop the selection.

BUG: Get Info on technology edit nodes gives wrong information.
FIX: In "usrdiacom2.c:us_getinfonode()", must not handle artwork color if
     there is technology editing relevance.

BUG: Grid size and colors are wrong in technology editing.
FIX: In "usredtecg.c:us_tecedmakelibfromtech()" change the line:
		tech->deflambda = el_curtech->deflambda;
     to:
		tech->deflambda = art_tech->deflambda;
     and change the lines:
		newmap[(i<<3)*3]   = colmap[i].red;
		newmap[(i<<3)*3+1] = colmap[i].green;
		newmap[(i<<3)*3+2] = colmap[i].blue;
     to:
		newmap[(i<<2)*3]   = colmap[i].red;
		newmap[(i<<2)*3+1] = colmap[i].green;
		newmap[(i<<2)*3+2] = colmap[i].blue;

BUG: Temporary rigidity doesn't always work
FIX: In "conlay.c:cla_domovearcinst()", in the second "if", change the clause
		((ai->userbits&FIXED) != 0 && ai->changed != cla_changeclock-1) ||
     to:
		((ai->userbits&FIXED) != 0 && ai->changed != cla_changeclock-1) ||
		ai->changed == cla_changeclock-2 ||

IMP: Added the ability to mirror arbitrary objects (not just 1 node).

IMP: Added NLOCKED bit in NODEPROTO userbits to allow for facet contents locking.
     Added NILOCKED bit in NODEPROTO userbits to allow for facet instance locking.

IMP: Added "control-shift" clicking to cycle through items under cursor when
     shift-clicking (adding to highlight).

IMP: Added "size nodes" and "size arcs" to allow sizing of all selected nodes/arcs.

IMP: When deleting a node, pins at the other end of connected arcs are also deleted.

IMP: Added two buttons to DRC Errors dialog to disable highlighting or DRC.

IMP: The use of block transfer when panning windows causes misalignment of stipples.
FIX: Disabled block transfer (was only useful when display was slow).

IMP: The "END" key now scrolls the messages window to its end (UNIX).

BUG: "Change" command lists facets twice (shows facet names and cell names).
FIX: In "usrcom1.c:us_topofnodes()", change "ARCS" to "(ARCS|CELLS)".

IMP: Better confirmation for printing, DRC, etc.

IMP: MOSIS CMOS Submicron technology now handles up to 6 layers of metal.

BUG: SDF files are not "Simulation Data Format".
FIX: Changed menus and documentation to read "Standard Delay Format".

IMP: Node and Arc Get Info dialogs have options to see connected arcs and nodes.

IMP: When multiple objects are selected, double-click or Get Info lists them.

IMP: Added Meta key for Duplicate (Meta-M).

IMP: New option for CIF output to NOT call the top-level cell.

BUG: Library given in command line (UNIX only) has ".elib" as part of its name.
FIX: In "usr.c:us_do3init()", strip off extension.

IMP: Array command can now handle arbitrary selection.

BUG: Transistors in MOSIS CMOS Submicron technology have different size active ports.
FIX: In "tecmocmossub.c:mocmossub_tpa_p[]", and in "tecmocmossub.c:mocmossub_tna_p[]"
     change the very last entry in the structure (8 lines down) from BOTIN6 to BOTIN6H.

IMP: Path highlighting now shows connection to node centers in dotted lines.

IMP: Can now select multiple libraries to read at once (when the dialog supports
     it).  Only implemented on Windows for GDS input.

BUG: "Insert Break in Arc" doesn't work.
FIX: In "usrcomcd.c:us_create()", after the line:
		if (namesamen(par[0], "breakpoint", l) == 0 && l >= 1)
     remove the next two lines (calls to "us_demandxy" and " gridalign")

IMP: Added SKILL output (Cadence command language format).

IMP: Added LEF output.

IMP: Added extra contact layers (5 and 6) and extra contact information that
     tells whether the contact connects to diffusion, poly, or metal.

IMP: Fixed Bus pins in Schematics so that they aren't drawn if exported but
     unconnected.

BUG: GDS input handles PATH wrong (ends are shortened incorrectly).
FIX: In "iogdsi.c:io_gdsIdetermine_path()", change the line:
		if (endcode == 0) fextend = textend = 0;
     to:
		if (endcode == 0) fextend = textend = width/2;

IMP: All file generation now displays full path of file.

BUG: Texsim netlist output crashes if there is no reserved word file (usual case).
FIX: In "simtexsim.c:sim_writetexnetlist()", only close "reservefile" if it is nozero.

IMP: Modified the "Wire_con" primitive in Schematics so that it can join networks
     (repeating the smaller bus onto the larger one).  Has new look and is
     now in the Digital Schematics menu.

BUG: Ripping a bus with no name will crash.
FIX: In "network.c:net_ripbus()", check for valid network name.

IMP: Added "Quick Keys" command to rebind keyboard bindings to menus.

************************* Version 5.7.3: Released 11/11/99 *************************

IMP: Further improvements in SUE reading.

BUG: Undoing may go too far back if the last change came from a tool.
FIX: In "usrcomtv.c:us_undo()" don't insist that change come from user interface.

BUG: Editing offset text on rotated nodes doesn't work.
FIX: Fixed code in "dbvars.c:getdisparrayvarlinepos()".

BUG: Using "Focus on Highlighted" when a zero-size pin is selected ruins display.
FIX: In "usrcomwz.c:us_window()", in the "highlight-displayed" case, after
     the block with the call to "us_getareabounds()", add this code:
		if (lx == hx && ly == hy)
		{
			lx -= el_curtech->deflambda;
			hx += el_curtech->deflambda;
			ly -= el_curtech->deflambda;
			hy += el_curtech->deflambda;
		}

IMP: Added the ability to name an arc "[1]" and then have it determine which
     bus is implied.
     Added the ability to name an arc "m[x]" where the "x" is not numeric.

BUG: On UNIX, cannot type Carriage-Return into text facets
FIX: In "graphunixx11.c:gra_translatekey()", change the lines:
		case XK_Return:    state = 013;   break;
		case XK_KP_Enter:  state = 013;   break;
     to:
		case XK_Return:    state = 015;   break;
		case XK_KP_Enter:  state = 015;   break;

************************* Version 5.7.2: Released 11/8/99 *************************

BUG: Selection finds nodes and arcs that are not under the cursor (because of
     implant extension).
FIX: Modified "usrnet.c:us_cursoroverhigh()", "usrnet.c:us_checkoutobject()",
     "usrnet.c:us_getclosest()", and created "usrtrack.c:us_geominrect()" and
     "usrnet.c:us_disttoobject()" to handle proper node and arc size.

BUG: Spread doesn't work on nodes that are too close.
FIX: Modified "usrcomrs.c:us_spread()" to use better spread-line determination.

IMP: Made "Up Hierarchy" more intelligent.

BUG: Batch DRC doesn't identify errors properly.
FIX: In "drcbatch.c", modified display to have proper transformation matrix.

BUG: Setting SPICE part name on schematic MOS transistor doesn't work.
FIX: In "usrdiacom1.c:us_widlendlog()", fixed end part that assigns SPICE name.

BUG: Facet graphing doesn't work.
FIX: Fixed code in "usrgraph.c".

IMP: Added Meta keys for Up and Down Hierarchy (Meta-U and Meta-D).

************************* Version 5.7.1: Released 11/3/99 *************************

BUG: "Show Facets Graphically" doesn't account for icon views.
FIX: Modified "usrgraph.c:us_graphfacets()" to handle icon/contents views.

IMP: New command to regrid layout.

IMP: Artwork primitives can now modify color in the "Get Info" dialog.

IMP: Circles have better "Get Info" dialog for controlling angle.

IMP: Status field node area now shows what is in menu while cursor roams over it.

BUG: "Up Hierarchy" displays wrong area.
FIX: In "usrcomoq.c:us_outhier()", show full area if switching from contents
     to icon, and don't focus on highlighted port if found.

IMP: Can now read files with arbitrary line endings (Mac/Win/UNIX).

IMP: Made SPICE 3 the default (used to be SPICE 2)

IMP: Added ability to create annular rings.

BUG: Window partitions (on UNIX only) may not resize properly.
FIX: In "usrmisc.c:us_windowfit()", change the line:
		if (strcmp(el_topwindow->location, "entire") != 0)
     to:
		if (strcmp(w->location, "entire") != 0)

IMP: Made WINDOWFRAME a first-class object so that it can be referenced
     directly in the database.

BUG: Undoing and redoing through start of simulation doesn't always work.
FIX: Simulation state variables are now stored on simulation tool object.

IMP: Removed the word "box" as the default symbol in a Schematic black-box.

BUG: Moving port names in icons doesn't move the port pin, because the pin is
     a schematic pin.
FIX: Made icons use invisible pins as ports, so they move with the text.

BUG: Spurious graphics may get drawn in the simulation window.
FIX: In "usrwindow.c:us_endchanges()" and "us_undisplayobject()", must check
     that the window is of type DISPWINDOW before drawing into it.

IMP: Added special dialog for the text on source nodes.  Also added special
     node functions for the different types of source nodes.

IMP: Selecting a signal in the waveform window now highlights the trace.

IMP: Added command to find hierarchical signals in HSPICE signal files.

BUG: Cannot handle HSPICE plot files (.tr0 files) with signal names longer
     than 16 characters.
FIX: In "simspicerun.c:sim_spiceparseoutput()", modified parsing code to
     handle long names.

BUG: Deleting variables on nodes/arcs and then undoing may crash.
FIX: In "usrhigh.c:us_makehighlight()" and "us_makehighlightstring()", must
     store highlighting of variables as the variable name, not the address.

BUG: In-place editing of strings on source nodes doesn't work.
FIX: Added facility for determining proper string on nodes with parameter
     information embedded in the string.

IMP: Added mnemonic keystrokes in menus on Windows and UNIX.

IMP: HSPICE plotting now knows to read ".tr0" files.

IMP: Color maps are now saved with options.

IMP: "Port Display" is now "Port Display Options" and is saved with options.

IMP: Color mixing is now a full dialog.

IMP: Improved text sizing by calculating proper technology value to use in
     "truefontsize" calls.

BUG: Editing text in-place doesn't work when the grab point is not in the center.
FIX: In "dbvars.c:getdisparrayvarlinepos()", must use the center of the object
     instead of the low and high edges.

BUG: GDS Input may create corrupt databases.
FIX: In "iogdsi.c:io_gdsIrecompute()", uncomment calls to "geomstructure" and "linkgeom".

BUG: Library variables don't get imported from readable dump files in when there
     are no facets in the library.
FIX: In "iotext.c:io_libcc()", move the line: "io_varpos = INVLIBRARY;" to be the
     first in the routine.

BUG: GDS input doesn't handle nonmanhattan geometry properly.
FIX: In "iogdsi.c:()", change the call to "tech_makeendpointpoly" from:
		tech_makeendpointpoly(length, width, 0, fx, fy, fextend,
			tx, ty, textend, poly);
     to:
		tech_makeendpointpoly(length, width, figureangle(fx, fy, tx, ty) / 10,
			fx, fy, fextend, tx, ty, textend, poly);

BUG: When Simulation Option "resimulate each change" is unchecked, no waveform
     display is shown.
FIX: Fixed simulator to show waveform at start.  Added keystroke "u" to update.

IMP: Removed special build cases (EGNUL and EVES) and added defines to allow
     any component to be added to the build.  Also removed "egnumenus.mac".

BUG: Simulation may crash.
FIX: In "simalssim.c:simals_run_simulation()", cannot compare "var" with 0,
     must use "NOVARIABLE".

IMP: Moved dialog package completely into the "graph" modules and removed
     "usrdialogs.c".

IMP: Dracula deck is now edited in the "DRC Options" dialog
     and is saved with the other options.

IMP: Built-in SPICE model cards are now edited in the "SPICE Options" dialog
     and are saved with the other options.

BUG: Options are saved with individual libraries
FIX: In "dbvars.c:makeoptionstemporary()" at the end, change the line:
		db_optionvarcache[i].var->type &= ~VDONTSAVE;
     to:
		db_optionvarcache[i].var->type |= VDONTSAVE;

BUG: Design rules for MOSIS CMOS Submicron should have select surrounding
     active by 2, but contacts don't.
FIX: Changed rules in "tecmocmossub.c".

BUG: Design rules for MOSIS CMOS Submicron are not implemented with respect
     to cut spacing (active cut, poly cut, and the 3 vias).
FIX: In "tecmocmossub.c", the polygon tables for the contacts (for example
     "mocmossub_mpa_l") should have 0 in the cut's "portnum" field, not -1.

IMP: Added new tool for "logical effort" transistor sizing.

IMP: Changed node "get info" so that it makes a more sensible list of ports.

IMP: Added "Messages Window Font" for UNIX.

IMP: Made a dialog for technology parameterization.  Added ability to view
     MOSIS CMOS Submicron as stick-figures.

IMP: Added "request" method to technologies, and routines "telltech()" and "asktech()"

IMP: Moved "terminal.c" to user area, now called "usrterminal.c"

BUG: Arc names are not displayed if their text style is set to "boxed".
FIX: In "dbtechi.c:tech_filldisplayableavar()", call to "makerectpoly"
     must be done instead of setting polygon location, not in addition to it.

BUG: UNIX display has colors wrong on 24-bit deep displays.
FIX: In "graphunixx11.c:us_loadmap()", must change the line:
		gra_colorvalue[i] = (r << 16) | (g << 8) | b;
     to:
		gra_colorvalue[i] = (b << 16) | (g << 8) | r;

BUG: UNIX may crash if fonts are not found
FIX: In "graphunixx11.c:us_initgraphics()" must move initialization of
     "gra_defaultFont" to before the section that initializes fonts.

IMP: Added ability to specify PostScript page size, including margins
     and plotter width.

IMP: Added "Clean up" command in "Edit" menu to remove extraneous pins.

************************* Version 5.6.1: Released 9/22/99 *************************

BUG: "Saved Views" command doesn't work.
FIX: In "usrdiacom1.c:tty_windowviewdlog()", corrected bugs.

BUG: When transistors are connected to nonManhattan wires, the geometry is wrong.
FIX: In "dbtechi.c:tech_shortenmostrans()", must add half the width to the
     shorten amount before calling "tech_makeendpointpoly()".

IMP: "Get Info" on transistors shows their sizes as "length" and "width".

BUG: During technology edit, editing string variables doesn't work under Windows.
FIX: In "usrdiacom1.c:tty_techvarsdlog()", marking changes to variables is only
     done if variable can be changed.

BUG: Technology editing commands can be issued when not editing a technology.
FIX: Commands now issue a warning when not in technology-editing mode.

IMP: Grid options now allow setting of default spacing, spacing between bold
     dots, and choice to align the grid with the circuitry.

BUG: Multiple highlighting (such as when DRC highlight errors) fails.
FIX: In "usrhigh.c:us_addhighlight()", must allocate new element of highlight
     list, not just give pointer to it.

IMP: Added "s" and "l" keys to make window pans small or large.

IMP: Added ability to save certain options with "Option Saving" command.

IMP: Added dialogs for "DRC Options", "Simulation Options", "Network Options",
     "VHDL Options", and "Compaction Options".  Split "Grid Settings" into
     "Grid Options" and "Alignment Options".

IMP: Added ability to save options in a hidden library file "electricoptions".
     Added routines "makeoptionstemporary()", "restoreoptionstate()", and
     "isoptionvariable()" to make options visible or not.

IMP: Moved "Technology/IO Control"  to "File/Foreign File Options" and gave it
     dialogs for each of the external formats: CIF, GDS, DXF, and EDIF.

IMP: Added "Frame Options" command of "VIEW" menu to set fields in frames.
     Also modified frame sizes to be more sensible.

IMP: Silicon Compiler now saves parameters in the library.

BUG: Design rules for MOSIS CMOS Submicron are wrong with respect to
     N-Active to P-Active.  Rule is 3 microns, but should be 12.

************************* Version 5.5.4: Released 9/5/9 *************************

IMP: In order to prepare for full saving of options, certain menu commands were
     renamed.  Now, most commands with the word "options" have their values saved
     in the library.  The renamed commands are: "Windows/Text Defaults" (now "Text Options"),
     "Info/Set Node Defaults" (now "New Node Options" "Info/Set Arc Defaults"
     (now "New Arc Options") and "Tools/Routing/Set Routing Arc" (now "Routing Options").

BUG: When typing a new node size into the "Get Info" dialog, the corner is held fixed.
IMP: In "usrdiacom2.c:tty_showdlog()", check to see if position changed, and if not
     then the center is held fixed.

IMP: Merged "graphunixsys.c" into "graphunixx11.c" and also merged "graphmacsys.c"
     into "graphmac.c".

BUG: Reading all IO layers from disk may not work.
FIX: In "usrmisc.c:us_varchanges()", allow spaces before numbers, and prevent
     insertion of new layers if file is longer.

IMP: Added ability to preserve more parameters in the library.

IMP: Added ability to print color from PostScript.

IMP: Changed UNIX program name variables from "SPICELOC", "ESIMLOC", "RSIMLOC",
     "RNLLOC", and "PRESIMLOC" so that they begin with "ELECTRIC_".

************************* Version 5.5.3: Released 9/2/99 *************************

IMP: Cleaned-up Motif/Lesstif interface for UNIX.

BUG: GDS Input may parse Y2K dates incorrectly.
FIX: In "iogdsi.c:io_gdsIdetermine_time()", adjust year values.

BUG: Connecting two arcs may crash.
FIX: In "usrhigh.c:us_highlighteverywhere()", must set "point" to zero if
     the object is an arc.

BUG: Deleting fixed variable (in "Variables..." dialog) crashes.
FIX: In "dbvars.c:delvalkey()", must test for valid "key" before calling "makename".

IMP: Made "GDS Input Instantiation of Arrays" the default.

************************* Version 5.5.2: Released 7/10/99 *************************

BUG: Popup menus (such as in technology edit) sometimes have wrong title
FIX: Must allocate header string in "usrcomln.c:us_menu()" before calling
     "us_popupmenu()".

IMP: Fixed the "Highlight Layer" command to present a sensible dialog.

BUG: VHDL Import misses parts of the file.
FIX: In "iovhdl.c", reorganized and added code to read "architecture" sections.

BUG: Text grab point is wrong on rotated nodes.
FIX: In "usrdiacom2.c:tty_showdlog()", must call "us_rotatedescript" before
     and "us_rotatedescriptI()" after displaying rotation.

BUG: On UNIX, messages display runs out of space and shows no more.
FIX: In "graphunixx11.c:gra_putstring()", test for room and clear top.

BUG: Printing on Windows is wrong.
FIX: In "graphpccode.cpp:gra_printwindow()", adjusted display coordinate calculations.

IMP: Improved Silicon Compiler: has full dialog for setting parameters; can
     create vias to connect to cells.

BUG: Cannot edit facets with special characters (such as "$") in their names.
FIX: In "usrdiacom2.c:tty_editfacetdlog()", call "us_editfacet()" directly.

IMP: Added beginning of Motif/Lesstif interface for UNIX.  Required that the ELK
     structure "Object" be renamed to "ELKObject".

IMP: Modified facet graphing to show names correctly.

IMP: Added a DEF (Design Exchange Format) reader: iodefi.c.

IMP: Added a LEF (Library Exchange Format) reader: iolefi.c.

IMP: Added a SUE (Schematic User Environment) reader: iosuei.c.

IMP: Added ability to draw partial ellipses (by setting partial angle on non-
     rectangular circle).  Modified "tecart.c:art_fillellipse()".

IMP: Added "Verilog Options" dialog to set model files and control use of "Assign".

IMP: Made better "bomb out" dialog that allows ease of saving libraries.

BUG: Changing characteristics of port crashes.
FIX: In "usrdiacom2.c:tty_showdlog()", after dialog, when deciding on text edit mode
     (itemHit == 27), must also test that "high->fromvar != NOVARIABLE".

IMP: Removed separate path variables for LISP, TCL, and TK, derive them from
     the main library directory.  Fixed LISP to use this path.

BUG: Problem giving bus networks multiple names (doesn't always unify the names)
FIX: In "network.c:net_addnametonet()", forced individual nets on a bus to be merged.

BUG: Duplication of arcs or text does not leave selection right.
FIX: In "usrcomcd.c:us_duplicate()", modified final selection code.

BUG: Small/Medium/Large text scaling is not right.
FIX: In "dbtext.c:truefontsize()", adjusted parameters for modern screen sizes.

BUG: UNIX cannot handle library named on command line.
FIX: In "usr.c", set color map immediately after computing it in
     "usr.c:us_do2init()".

IMP: Added the ability to negate bus wires in the Schematic technology.

IMP: Added "smart text placement" to "Text Defaults" dialog to place
     port name according to port location relative to connecting arcs.

BUG: Crashes when displaying a window and there is none on the screen.
FIX: In "usrdisp.c:us_fullview()", must not compute displayable variable
     extent if there is no window.

BUG: Changing the library name doesn't update the window title bar.
FIX: In "usr.c:us_newvariable()", check for change to "libname".

IMP: Added the ability to move objects by different amounts from the
     arrow keys (F for full, H for half, Q for quarter) as a prefix
     for the distance, command prefixed to multiply by 8).

IMP: Modified the "Create Port" dialog so that it remembers the characteristics
     from one use to another.

IMP: Added ability to create Verilog declaration blocks, separate from the
     Verilog code blocks.

BUG: Verilog output doesn't include "wire" statements for internal signals.
FIX: Modified "simverilog.c" to include these declarations.

BUG: Text selection doesn't always work when text has non-centered grab point
FIX: In "usrnet.c:us_maketextpoly()", added case statement to set polygon style
     before calling "rotatelabel()".

IMP: UNIX file select dialog now ignores files starting with "."
     (modified dbtext.c:nextfile()).

IMP: Added the ability to print from UNIX.  Added the internal command
     "library write LIBRARY printed-postscript" and fixed macro files

IMP: Added the ability to synchronize facets with PostScript files, so that the
     PostScript export will write all facets in the library that need updating.
     Also added the ability to specify an EPS scaling factor for each facet.
     Added the command "tellaid io postscript (synchronize FILENAME | unsynchronize)
     and modified the "Print Options" dialog.

BUG: Bus arc names do not always get unified properly.
FIX: Improved "network.c".

************************* Version 5.5.1: Released 5/10/99 *************************

BUG: Arc defaults dialog doesn't handle changes to more than 1 arc at a time.
FIX: Redid dialog, including popup for arc selection.

BUG: Double-clicking library files doesn't work on Windows.
FIX: In "usr.c", changed handling of double-clicked files.

IMP: Automatically change technology when reading a library with the main facet
     in a different technology.  Detect difference between analog and digital
     schematics.  Added the command-line variable "~t" which is the current tech.

IMP: Modified "usrdisp.c:us_drawnodeinst()" to write exported port names after
     the node graphics so that the name is unobscured.

IMP: Facet creation dialog sets the default view to the same as the current facet
     or the last one created.

BUG: Very long nonmanhattan arcs may not be drawn properly.
FIX: In "dbtechi.c:tech_makeendpointpoly()", use "muldiv" for the multiplications
     and divisions (6 places).

BUG: After changing layer patterns, screen does not redisplay
FIX: Fixed macro package to redisplay.

IMP: GDS input now has options to include text and to expand facets.  Low-level
     commands are: "tellaid io gds input [text | no-text] [expand | no-expand]"
     Menu commands are "Technology/IO Control/GDS Input Includes Text" and
     "Technology/IO Control/GDS Input Expands Facets"

BUG: GDS input doesn't handle rotations properly
FIX: Completely new version of "iogdsi.c" from Glen Lawson cleans up many problems

BUG: Deleting a line of text can cause a crash (specifically, when editing
     design rules in technology-edit mode).
FIX: In "usreditpac.c:us_editpacremoveselection()", must call
     "us_editpacshipchanges()" and "us_editpacbeginwork()".  Also indices
     for "DELETETEXTLINE" were wrong.

BUG: Some GDS files cause the system to crash when read in.
FIX: In "iogdsi.h", expanded MAXLAYERS to 128.  In "iogdsi.c", added check for
     the range of a layer number.

IMP: Added the ability to edit text objects in place.  Added the command option
     "var textedit VAR in-place".  Code in "usrmisc.c".

IMP: Added ability to have displayable array variables.  Added the
     routines "makedisparrayvarpoly()" and "getdisparrayvarlinepos()".
     Added code in "usrhigh.c", "usrnet.c", "usrdisp.c", "usrtrack.c",
     and "dbtechi.c" to use it.

IMP: Added ability to treat any displayable variable on an invisible
     node the same (not just ART_message).  Changed "usrtrack.c".

BUG: Windows file output allows overwriting without prompting.
FIX: Changed output dialog to prompt if file exists.

IMP: Rewrote Verilog output module.  Now part of GNU distribution.
     Also added the "verilog" view of a cell.

BUG: Adding a bus port to a facet with an icon does not create a bus
     pin in the icon.
FIX: In "usrnet.c:us_makenewportproto()", added proper wire/bus
     determination code similar to that in "us_makeiconfacet()".

BUG: Macintosh build fails on newer Codewarrior systems.
FIX: Change "CW22ORNEWER" to "NEWCODEWARRIOR" in the module "dbmult.c"

************************* Version 5.4g6: Released 3/12/99 *************************

BUG: On Windows, the "Artwork Color" and "Layer Visibility" pattern examples
     don't work right.
FIX: Fixed dialog scaling in "graphpccode.cpp:gra_dodialoginit()".

IMP: Rearranged placement of status fields to allow more fields on UNIX and Mac.
     (modified initial creation parameters in "usrstatus.c:us_initstatus()").
     Added facet size to status bar.  Improved "usrstatus.c" and the
     "graphXXX" modules.

IMP: Full view of a window now includes variables that have been offset.
     Modified "usrdisp.c:us_fullview()".

BUG: When a node or arc name is not visible, the "Duplicate" command makes the
     copies visible.
FIX: Copy the visibility bit in "usrnet.c:us_copyvars()".

BUG: Cursors don't change properly.
FIX: Improved graphics modules to display cursors correctly.

BUG: UNIX dialogs do not accept the arrow keys.
FIX: Moved rebinding code in "graphunixx11.c" to be in the right place.

IMP: UNIX file output now has full file selection dialog.

IMP: New X Window driver works on all bit depths without "colormap flashing"
     The downside is speed: this is slower.  Old version available by editing
     the "Makefile".

BUG: On Windows, SPICE dialog acts strangely when model card files are requested.
FIX: Redid file selection dialog to use MFC in "graphpccode.cpp:gra_fileselect()".

BUG: If changing a node into another node fails (due to port incompatibility),
     the system crashes.
FIX: In "usrnet.c:us_replacenodeinst()", must test result of "replacenodeinst".

BUG: On UNIX, if a library is specified on the command line and the user quits
     without making changes, the system still prompts to save.
FIX: In "usr.c:us_do3init()", after issuing the "editfacet" command to display
     the main facet in the initial library, the LIBCHANGED bit must be cleared.

IMP: Added the off-page connector to the list of analog parts available from
     the edit menu.

BUG: The tutorial describes incorrect items in the component menu.
FIX: Fixed the tutorial file.

BUG: When deleting windows, system might crash.
FIX: In "usrcomwz.c:us_window()", in the "delete" case, before setting the
     new window, if there is none, set "el_curwindow" to null.

IMP: There are 5 commands that prompt with lists of technologies: switching
     technology, documenting technology, editing technology, deleting technology,
     and converting a facet to a new technology.  Each takes a different list,
     and a general list may not work for all.  Modified "usrdiacom1.c" to make
     the list specific.

************************* Version 5.4g5: Released 2/13/99 *************************

BUG: UNIX sometimes redraws the window without the stipple patterns.
FIX: In "graphunixx11.c:gra_handleeditevent()", must call bracket call
     to "gra_repaint" with calls to "us_startbatch()" and "us_endbatch()".

BUG: Call to "mkstemp" does not fit logically with scheme of renaming
     binary file before writing new one.
FIX: Removed "mkstemp" call and use "mktemp".

BUG: File selection fails on Solaris systems.
FIX: In "graphunixx11.c:filesindirectory()", call "closedir()" after done.

BUG: Distance measures in the transistor size and area dialogs are wrong.
FIX: Removed distance choices, keeping distances in lambda units by default.

BUG: Incorrect parsing of distance measures.
FIX: Rewrote "dbtext.c:atola()", fixing numerous logic errors.

BUG: Icons are not properly "fleshed-out" when writing SPICE decks.
FIX: In "simspice.c:sim_spicewritefacet()", check for icon view and use contents
     before recursing.

BUG: You can place an icon into the layout of the same cell, causing recursion
     and a crash.
FIX: In "dbmath.c:isachildof()", test "child->cell == parent->cell" rather than
     "child == parent".

IMP: The "Get Info" dialog on text objects shows the actual position of the text.

IMP: In the VIEW commands "Edit Layout View", "Edit Schematic View", etc., if the
     window is already on the display, it is brought to the front, rather than
     creating a new one.  Created the routine "us_bringwindowtofront()" in the
     GRAPH modules and added the command "editfacet FACET non-redundant".

BUG: On UNIX, deleting one of the two simulation windows causes simulation
     to stop.
FIX: In "usrmisc.c:us_killcurrentwindow()", must reinstate the simulation
     bit in the new window after the call to "us_windowfit".
     In "simwindow.c:sim_window_termschemhandler()" and
	 "simwindow.c:sim_window_termhandler()", must not call "sim_window_stopsimulation"
     but just reset the "sim_window_np" variable so that it can be put back
     in "sim_window_redisphandler" and the newly created "sim_window_redispschemhandler".

BUG: SPICE options are not saved with the library.
FIX: In "sim.c:sim_init()", "sim.c:sim_set()", and "usrdiacom1.c:tty_simdlog()"
     removed the VDONTSAVE from sets of "sim_spice_state" and "sim_spice_level".

BUG: When converting small-lambda technologies (such as mocmossub) to schematics,
     components are large and overlapping.
FIX: In "usrctech.c:us_tran_logmakenodes()", must scale placement of components.

IMP: Binary I/O is now 64-bit clean.  New library format saves big and
     and small integer size.  Changed "iobinaryi.c" and "iobinaryo.c".

IMP: When duplicating nodes or arcs, names on them are forced to be
     unique.  Created "usrnet.c:us_copyvars()" and call it from
     "usrcomcd.c:us_duplicate()".

BUG: If a "Save As" is cancelled, subsequent "Save" commands still
     prompt for a file name.
FIX: Changed macros for "Save As" and also removed statements that
     set "el_pleasestop" in "dbtext.c:xcreate(),
     "graphunixx11.c:gra_fileselect()", and
     "usrparse.c:tty_specialparse()".

IMP: Renamed ports on some schematic components to be more sensible.
     "Source" now has ports "plus" and "minus"; "Meter" now has ports
     "a" and "b"; "Two-Port" now has ports "a", "b", "x", and "y".
     This change also requires a fix to "iobinaryi.c:io_doreadlibrary()"
     and "iotext.c:io_getport()" and the addition of
     "io.c:io_convertoldportname()" to properly read old format libraries.

IMP: The "Get Info" dialog now can manipulate the parameters of schematic
     components.

BUG: When changing schematic components to other schematic components,
     old schematic parameters persist and have no meaning.
FIX: When changing these components, old parameters are removed.

BUG: On UNIX, middle button does strange things.
FIX: Modified macro files (lib/egnumenus.mac) to unprogram this button.

BUG: Behaves badly or crashes during technology editing, when changing
     characteristics of a port.  On Windows, typing into dialog does not work.
	 On all systems, moving port after a change may crash.
FIX: For Windows dialog bug, "graphpccode.cpp:gra_keyaction()", must offset
     the coordinates by the window corner position.  For port motion crash,
     "usredtecc.c:us_teceditmodobject()" must handle PORTOBJ case specially and
     reset the currently highlighted node after calling "us_tecedmodport()".

IMP: In the SPICE Options dialog, now allow the use of "Use Node Names"
     checkbox for SPICE3 (used to only allow it in HSPICE).

BUG: On UNIX and Windows Visual C 6.0, crashes when changing port
     characteristics in the technology editor.
FIX: In "usrcom1.c:us_paramsedtecport()", must declare static character
     arrays:
		static char technologycpynpdef[4];
		static char technologycpbpdef[20];
     and then set the "def" fields of "technologycpbp" and "technologycpynp"
     to them before copying to those fields, for example:
		technologycpbp.def = technologycpbpdef;

BUG: When simulating, cannot shift the waveform window left or right.
FIX: In "sim.c:sim_set()", in the "window move" case, in the "left and right"
     subcases, the line:
		if (count < 2) time = size / 2.0; else
     should change the "< 2" to a "< 4".  In the "up and down" case, the line:
		if (count < 2) amount = signals / 2; else
	 should also change the "< 2" to a "< 4".

BUG: When the "mocmossub" technology is converted to a library, it cannot
     be converted back.
FIX: In "usredtecg.c:us_tecedmakelibfromtech()", must set separation
     to a minimum of 5000 units by adding:
		if (xs < 5000) xs = 5000;
		if (ys < 5000) ys = 5000;
     after the line
		ys = (pnp->highy - pnp->lowy) * 2 * tech->deflambda / oldlam;

BUG: On UNIX and Windows Visual C 6.0, crashes when the SPICE Options dialog
     requests heading or trailing model cards from a file.
FIX: In "usrparse.c:tty_specialparse()", must copy the "prompt" parameter to
     a temporary location before modifying it.  Also, in
     "graphunixx11.c:gra_fileselect()", must call "DiaAllowSubDialog()" before
     each call to "DiaInitDialog()".

BUG: On UNIX and Windows Visual C 6.0, crashes when converting technologies
     to libraries.
FIX: In "dbnoproto.c:newnodeproto()", must copy the "fname" parameter to
     a temporary location before modifying it.

BUG: On Windows, cursors dissapear when the background color is black.
FIX: Made cursors use "inverse" color instead of black.

BUG: CIF input fails if there are layers for both n and p processes in the
     same file (and the technology is the MOSIS CMOS switchable one).
FIX: In "tecmocmossub.c", change lines 550 and 551 from empty strings
     ("","",) to the proper layer strings ("CSP","CSN", and "CWP","CWN",).
     Also added "Poly-Cap-Node" and "P-Active-Well-Node" pure-layer nodes.

BUG: Sample PLA personality files mentioned in document are not in distribution.
FIX: Files are now in the distribution.

IMP: Made Electric 64-bit clean.  Changed INTBIG to "long".  Changed %d to %ld
     where appropriate.  Changed "unsigned" to "UINTBIG".

IMP: On UNIX, crashes when X display is not set right.
FIX: Used "printf" instead of "error" in "graphunixx11.c:gra_finddisplay()".

IMP: Improved User's manual HTML: added <HTML> at start of pages; fixed
     places where <HEAD> had missing "<"; added ALT to all images; changed
     "<" and ">" to &lt; and &gt; changed <H3> to <H2>; shortened <TITLE>;
     changed version from 5.4g3 to 5.4g4; and added the missing
     section 9-9.  Also removed all references to company propreitary
     code.

IMP: Modified UNIX Makefile to ignore unused modules "dblangelk.c" and "dblangtcl.c".

IMP: Cleaned up compiler warnings in "graphunixx11.c", "dbmult.c"

************************* Version 5.4g4: Released 11/24/98 *************************

BUG: UNIX does not automatically detect the need for the Xmu library.
FIX: Improved "configure" to detect the presence of this library.

BUG: Some compilers complain about extra semicolon after close bracket
     in header files (happens in the extern "C" wrapper for C++).
FIX: Removed the semicolons.

BUG: On the Mac and UNIX, dialogs with scrollable areas draw the
     vertical scrollbar incorrectly.
FIX: In "usrdialogs.c:Dsetvscroll()", must add 13 to r.right, not 14.
     Also, in the UNIX version of "Dgrayrect()", must not subtract 1
     from right and bottom coordinates.

BUG: If a new library is read while simulating, the red border persists.
FIX: In "usrcomln.c:us_library()", must terminate simulation after reading
     a new library that replaces the current one.

BUG: On UNIX, the highlighted simulation window trace dissapears
FIX: In "simwindow.c:sim_window_writetracename()", must reset
     the mask to "LAYERA" after writing highlighted trace info.

IMP: Fixed the routines "usrdialogs.c:Dgettextsize()" and
     "usrdialogs.c:Ddrawtext()" to copy their argument before modifying
     it so that strings do not need to be writable.  Then removed the
     "-fwritable-strings" flag on UNIX.

BUG: On HP UNIX, "scandir" call fails to compile in "graphunixx11.c".
FIX: Conditional code to define "gra_fileselectall" for HPUX.

BUG: On Windows, under Visual C++ 6.0, program will not run.
FIX: Visual C++ 6.0 places string constants in protected memory.  Fix involves
     changing "dbcontrol.c:el_primaryinit()" to place the constants "noname"
     into temporary arrays (because "newlibrary()" may modify its arguments);
     and modifying "dbtext.c:getnodeproto()" and "dbtext.c:getarcproto()" to
     copy their argument before modifying them (because they may be passed
     constants).

BUG: On Windows, compiled version of Electric requires Msvcrtd.dll and
     Mfc42d.dll to run (these DLLs are available only on machines with
     Visual C installed).
FIX: Changed "General" setting to be "Use MFC in a Static Library".

BUG: If "cadrc" file is missing, system may crash.
FIX: In "dbtext.c:xopen()", must test for "otherdir == 0" as well as
     "*otherdir == 0".

IMP: Added introductory display during loading (added to "usr.c:us_do2init()").

IMP: Corrected warning messages produced on BSD (requested brackets, implicit
     declarations).

IMP: Now check for "mkstemp" and use it (instead of "mktemp") in "iobinaryo.c".

IMP: Now check for "termios.h" (a BSD header file) and use it in "usr.h",
     "graphunixx11.c", and "simsim.c".

IMP: Documentation now indicates that UNIX users must use GNU make.
     Documentation now points users to www.gzip.org for more information.
     Documentation now makes even more clear that UNIX users must use 8 bit
     display (and that Windows users must use 16 or more).

BUG: On PC, numeric keypad doesn't work for window-shifting commands
     (such as Control-4 to shift left).
FIX: In "graphpcchildframe.cpp", added code to the "OnKeyDown" method
     to recognize the numeric keypad.

BUG: On UNIX, the define "HAVE_SGTTY_H" was not set properly.
FIX: Added "#undef HAVE_SGTTY_H" to "defines.h.in"

BUG: Some compilers use "restrict" as a keyword, causing compilation
     errors.
FIX: In "global.h" and "dbvars.c", changed parameter "restrict" in
     the routine "initobjlist()".

IMP: On UNIX, cleaned up "Makefile.in" for better installation.  Also
     removed "termcap" library.

IMP: Upgraded Macintosh code for CodeWarrior release 22 (from
     Mariusz Niewczas of CMU). Involved changes to "config.h",
     "usr.c", "usrcomtv.c", "dbmult.c", "graphmac.c" and "graphmacsys.c"

************************* Version 5.4g3: Released 10/9/98 *************************

IMP: UNIX file selection now using extension filters (for example,
     readable dump files must end in ".txt").

IMP: Made SPICE simulation *NOT* simulate automatically on any platform.

BUG: On UNIX, creation of output files fails.
FIX: In "graphunixx11.c:gra_fileselect()", output case must call
     DiaGetText(4) before calling DiaDoneDialog().

IMP: Added hooks to enable ELK LISP to be compiled on UNIX.

BUG: Simulation window does not show selected nets when window uses
     white-background color map.
FIX: In "simwindow.c:sim_window_writetracename()", use highlight color
     for trace name, not WHITE; in "sim_window_drawcursors()", make
     initial call to "sim_window_drawbox()" use 114 as first parameter,
     not zero.

BUG: On the PC, cannot plot spice listings.
FIX: Remove exclusion code at start of "simspicerun.c:sim_spice_execute()"

BUG: On the PC, the Messages Window Font command of the Windows menu fails.
FIX: Added code for font selection in "graphpccode.cpp:gra_setfont()".

BUG: Popup menus don't work on PC (this is noticed when trying to
     edit technologies).
FIX: In "graphpccode.cpp", must do "p2.x = p2.y = 0;" before
     calling MapWindowPoints.

IMP: Combined machine-specific terminal-handlers (graphmacterminal.c,
     graphpcterminal.c, and graphunixterminal.c) into one uniform file:
     terminal.c

BUG: Ports "1" and "2" on the schematic flipflop are syntically bad
     in VHDL.
FIX: Renamed them to "i1" and "i2".

IMP: Added X Windows toolkit for UNIX port.  Makes messages window
     scroll and not need "-MORE-" stuff.  Got rid of all "-More-"
     handling code in the system (it was only used on UNIX).

IMP: Added cut and paste on UNIX.

************************* Version 5.4g2: Released 9/17/98 *************************

IMP: Added copying notification to book and manual.

BUG: UNIX Messages window cannot rescale, main window shrinks when redrawn
FIX: Redid "graphunixx11.c" and "graphunixterminal.c"

IMP: Removed LINUX exception to use of FLOATSCALE in dbmath.c

IMP: Added "system print" command to Windows and implemented real printing.

************************* Version 5.4g1: Released 9/10/98 *************************
