rev.12 -- March 13, 1998
Workstation Motif (version 3.10.2)
PC MS-Windows (version 3.10.2)

A number of enhancements have been made to the latest release of CapFast for Motif and Windows. The Windows version is now 32-bit code, and requires Windows 95 or Windows NT. Installation and operation of the program remain fundamentally unchanged, however.

The latest version incorporates several bug fixes. A number of fixes will not be directly visible to most users, but have resulted in a stronger, more cohesive design environment of benefit to all users. Note that some new commands are not yet documented in the printed manual.

Enhancements (Motif and Windows versions):

1. Editing and entering labels, free-standing text, and noteboxes, and entering reponses to prompts is now done in a popup window. This makes it much easier to correct typing mistakes.
2. The internal command :note has been implemented. The command functions a little different than in the DOS/XView versions: anything on the line after ":note" is interpreted as text you want entered in the notebox. If 2 points are not yet placed, you will be put in "rubber-band" mode to draw a box. After points are placed, the edit window will pop up, allowing you to edit the text for the notebox. After you click on OK, the text is wrapped to fit the box you created. Wrapping is done at word breaks if possible, and lines never start with spaces or tabs. The height of the box is adjusted if the text entered will not fit in it, but the width remains the same (but is snapped to grid). The :note command was added to the Text menu as "Draw Note-box".
3. A new command, :resize, has been implemented to allow resizing of noteboxes. When invoked, it interactively resizes all selected noteboxes, one at a time. The text is reformatted and the box height adjusted as described for the :note command. The :resize command was added to the Text menu as "Resize Note-box".
4. The :relabel (Text->Relabel) command now works with noteboxes. The ":modtext 3" (Text->Scale) and ":modtext 4" (Text->Display) commands also work with noteboxes. However, ":modtext 1" (Text->Orientation), ":modtext 2" (Text->Justification), and ":modtext 0" (all) are not defined for noteboxes.
Several new internal variables were added:
cdfordsnfiles This variable controls whether the current working directory should be set to the directory containing the .dsn file when loading a .dsn file. This is useful when editing designs translated from another EDA tool, such as Mentor or Cadence, or when the design contains custom symbols that are located in the .dsn file's directory. The default is NO.
freeendsize This variable specifies the radius of the circles that are drawn at the free ends of wires. Range is 0 to 256, default is 19.
promptover This variable controls whether the program should ask the user if a file should be overwritten during a save operation, if the file already exists. Default is YES. This can be used to implement cut-and-paste between schematics. For example, place the following lines in your edit.mnu file ('\' indicates line continuation; join the lines when you type them in the file):
	text Cu&t
	string :set tpromptover $promptover;:set promptover NO;:save \
		~/bak/cutfile;:set promptover $tpromptover
	text P&aste
	string :read ~/bak/cutfile
These two menu entries respectively save the selected set to the file ~/bak/cutfile.sch and read it in for merging with the current schematic.
textabovewire This variable specifies the distance between a wire and its label. This takes affect only on wires drawn, rerouted, or extended (manually or automatically by e.g. moving a symbol) after the value is set. Range is -256 to 256, default is 4.
6. Schedit now allows wires to be drawn closer together than 16 units. The limit is now whatever the internal variable snapgridsize (Configure->Snap Grid Size) is set to. "Jogs" in wires also follow the same rule; previously wires would get straightened if a jog in the wire was less than 9 units. When wires need to be drawn close together, simply set snapgridsize to a small value, such as 4, and draw the wires. When finished, set it back to 16 or 32 so it's easier to connect wires to ports when zoomed out.
7. After a wire is drawn or rerouted (manually or automatically), the wire name is now automatically centered on the longest horizontal segment of the wire, or if the wire is only vertical, then on the vertical segment. When placed on a vertical segment, the name is rotated so it is parallel to the segment.
8. Now, when the Auto-name Bus Wires command is active (:bus), wires that are copied while wcpynames is NO are named according to the :bus command. That is, if you issue the command ":bus ADDR 0", draw a wire (which gets named "ADDR[0]"), and copy that wire, then when you place the copy, it will be named "ADDR[1]", the next copy "ADDR[2]" and so on. The copy command to use from the Edit menu is "No Instance Properties or Wire Names".
9. Now the model property can be used to specify the name of the schematic that a symbol represents. This is the schematic that is edited when using the :subedit command (File->Hierarchy->Descend).
10. The :system command has been implemented for both schedit and symed. On Windows 95 and NT systems, it opens a "DOS box" in the current directory and executes the command you give after it. Example:
	:system schplot -t $fullname | schps -wi 10.5 > lpt1:
prints the current schematic using the older, more versatile printing program schplot and the postscript filter schps, with a few options. On UNIX systems, :system executes the command given, from the shell that xschedit or xsymed was executed from. So, any messages will go to that shell window.

Enhancements (Motif versions):

1. Dialog boxes now warp the mouse pointer to the default button of the dialog box. With keyboard focus set to Follow Mouse, this allows use of many CapFast functions by keyboard only.

Enhancements (Windows version):

1. The hardware key now works properly on Windows 95 and NT systems.
2. A floating license is now available for Windows 95 and NT, in addition to the previous node-locked license. Both licenses use hardware keys, but the floating license requires the hardware key only on the machine running the license manager.

Fixed Bugs:

1. A property with no name can no longer be added. This prevents crashes in some netlisters such as older versions of sch2edif.
2. Fixed a bug where :qcheck (File->QC/ERC) would cause Schedit to crash when the schematic contained an alias symbol.
3. Wire names are now placed a consistent distance from the wire. Previously the distance was different when the wire was rerouted. This distance is slightly more for buses than for wires.
4. When the internal variable useconn (Options->Wire Options->Name Wires After Connectors) is set to "YES", wires are named after a connector they connect to. Previously this did not work properly in all cases.
5. Wires keep their assigned names when added to. Before, in some cases the a wire was assigned a new default name when added to.
6. A wire's name is automatically centered when the wire is re-routed using :rewire (Wire->Re-Route).
7. Noteboxes are now selectable by their box rather than just the corners of the box.
8. Fixed a bug where schedit crashed when drawing or connecting to wires with the connect property, under certain circumstances.
9. Changed the internal variables cpyinst and wcpynames so they can be toggled with the :toggle command.
10. Removed popup box which used to appear (in version 3.02.27) when trying to delete points when there weren't any placed. This keeps the user from having to move the mouse to the popup box.
11. Fixed a bug where schedit crashed when extending a wire immediately after drawing a bundle.

Summary of Editor Commands Currently Implemented:

Following is a list of all the internal commands, past and present. Those commands that have not yet been implemented in the Motif and Windows versions are preceded by a hyphen (-). Those commands that exist in the Motif and Windows versions but not in the DOS/XView versions are preceded by a plus (+). Those commands that are never going to be propagated to the Motif and Windows versions are preceded by an asterisk (*).

For many of the commands that will not be ported to the Motif and Windows versions, a macro can be defined to do the same thing. For example, if a macro called ":moveproperty" is defined as ":prop M", it will have the same effect as the original command (note that the property must be selected first for this macro to work). To make this available every time Schedit or Symed is run, it should be saved in the schedit.rc and symed.rc files.

- not yet implemented, but planned
* not implemented, not planned
+ in Motif and Windows, not in DOS/XView


- :writepath
* :moveproperty (use :property M)
+ :constrainprops
Design I/O
+ :empty
+ :put
Internal variables
- :activate
- :divide
- :cload
* :grid (use int. var. "gridon")
+ :resize
- :sleep
* :repop
- :system


+ :plot
+ :setupplotter
+ :transferfocus


* :copyproperties (use :property C)
+ :symbolmenu


- :curve
- :freehand
* :protect (use :property P)
- :scale