Logisim Changelog

What's new in Logisim 2.7.1

Oct 25, 2013
  • Feature: When errors are in a file being loaded, the file is still partially loaded and displayed. If multiple errors are found, each is displayed.
  • Feature: In Plexers library, added Select Location attribute to multiplexer, demultiplexer, and decoder.
  • Feature: If some components somehow manage to get "off the grid," they are relocated back onto the grid once they are moved.
  • Behavior change: With transistors and transmission gates, a floating value is passed through as floating regardless of the value of gate (including a floating or error gate value).
  • Behavior change: When clicking the currently viewed circuit, the circuit attributes are shown but no tool to add that circuit to itself is selected. This also happens with triple-clicking a circuit: The view is switched to the circuit, but the tool is not selected for adding instances to itself.
  • Bug fix: The combinational analysis "Product of Sums" option did not work when any variable other than the last one was to appear negated in any of the sums.
  • Bug fix: In the main editor window, when "Close" was selected from the Window menu, a dialog box popped up giving the Save/Discard/Cancel; but if Cancel was selected, the window was still closed (but without saving).
  • Bug fix: When "Reset Simulation" was selected while simulation was enabled, the reset values were not propagated through the circuit immediately.
  • Bug fix: Several types of exceptions could occur during simulation, particularly when poking the simulation while the simulation is busy. Many of these have been removed.
  • Bug fix: You could copy components from one project and paste them into another, even though the other project's libraries may not support the components being pasted.
  • Bug fix: Through starting to edit an attribute with a drop-down menu and then switching to view attributes for something else, the newly viewed attributes would actually change to the value of the previous edit.
  • Bug fix: When editing a circuit's appearances, labels would be given a color based on the fill color for rectangles/ovals/polygons rather than the color selected for text. This color was by default white, and so they appeared invisible.
  • Bug fix: When editing a circuit's appearance, changing between Border, Fill, Border & Fill didn't update attribute list (whether viewing attributes for a tool or for the current selection).
  • Bug fix: When editing a circuit's appearance and copying to the clipboard, the anchor's location and facing are stored to the clipboard if the selection includes the anchor.
  • Bug fix: In rare cases, loading files would show an error reading "Resetting to invalid mark." (This seems to have involved a non-ASCII character in exactly the wrong position.)
  • Bug fix: The Windows executable's application description was changed so "Open with" context menu gives proper application name.

New in Logisim 2.7.0 (Mar 15, 2011)

  • GUI:
  • Feature: Added the option of switching the "explorer pane" between viewing the "toolbox" (the project's circuits and libraries that has appeared in the explorer pane in previous versions) and a simulation hierarchy.
  • Feature: A Greek translation of the GUI elements was added. (The documentation is not yet translated.)
  • Feature: The attribute table contains a header line describing which attributes are being edited.
  • Feature: Added a "Close" item to the Window menu, which closes the current window. The "Close" item in the File menu continues to close the current project; its shortcut is now Control-Shift-W.
  • Feature: Added 250%, 300%, 400% to the options for zooming.
  • Feature: File dialogs "remember" the location of the last-accessed file, and the next file dialog starts from there - even when Logisim is started again.
  • Feature: During a rectangular selection, the rectangle is drawn with a light blue, and components that will be affected are indicated with a slate-blue outline.
  • Design change: Removed option to disable the project toolbar.
  • Bug fix: In moving a component whose output is connected to itself, it was possible for an exception to cause the program to hang.
  • Bug fix: The "Second radix when wire poked" preference was ignored - the "First radix" was displayed twice when the wire was poked.
  • Bug fix: Enabled the "-clearprops" command-line option for clearing all application preferences. (The previous version worked with "-clearprefs", but it was described as "-clearprops" in the "-help" text and in the documentation. Both now work.)
  • Bug fix: The Logging module's window title did not change when the file's name was changed.
  • Core:
  • Feature: Saving project files is more cautious, creating a backup before starting to write to disk and recovering from the backup if for some reason the save is detected to fail (whether nothing has been written to the file or an error has occurred while saving).
  • Feature: Individual subcircuit instances can have a label, in addition to the "shared label" that is displayed in the center of each instance of a subcircuit.
  • Bug fix: When simulation is disabled, selecting Tick Once will still cause a tick once the simulation is stepped.
  • Libraries:
  • Feature: Added a Wiring library containing transistor, transmission gate, power and ground components. Also, the splitter, pin, probe, tunnel, clock, pull resistor, and bit extender were moved into the Wiring library from the Base library, and constant was moved into the Wiring library from the Gates library.
  • Feature: In the Wiring library, splitters can be configured to show which bits correspond to each end using the new Appearance attribute. It uses this new appearance by default.
  • Feature: In the Wiring library, the pop-up menu associated with splitters includes menu items for distributing the bits in ascending or descending order.
  • Feature: In the Gates library, the gates (except Controlled Buffer and Controlled Inverter) have a new Output Value attribute so that a gate can output a floating value when the result is true or when the result is false. This is useful for building a wired-or and wired-and connections.
  • Feature: In the Plexers library, an enable input was added to the multiplexer, demultiplexer, and decoder.
  • Feature: In the Plexers library, the priority encoder received a new Disabled Output attribute.
  • Feature: In the I/O library, the LED Matrix's Input Format attribute can be changed after the matrix is added into the circuit.
  • Design change: Deleted the "Legacy" library for loading files saved in versions 1.x of Logisim.
  • Design change: For the Memory library's Random component, a reset when the seed is 0 computes a new initial seed based on the current time. (It previously reset to the initial seed for the current simulation.)
  • Design change: All components except Constant now use the included GIF icons rather than Java code.
  • Bug fix: In the Wiring library, changing the label for a Tunnel would not immediately affect the values propagated through the circuit.
  • Bug fix: In the Wiring library, Pull Resistors did not respect "printer view," which is meant to be black and white.
  • Combinational Analysis:
  • Feature: In the Combinational Analysis module, the user can select between using a sum of products or a product of sums.
  • Feature: The Combinational Analysis module supports apostrophes (as in "x'" for NOT x).
  • Design change: The Combinational Analysis module's expression pane uses a larger font size than previously.
  • Bug fix: Some run-time exceptions that would occur upon doing "Analyze Circuit" a second time were removed.
  • Bug fix: In the Karnaugh maps drawn by the Combinational Analysis module, each implicant was indicated by a red rectangle, but they were meant to use varied colors.
  • Bug fix: The Combinational Analysis module's "Build Circuit" feature could create excess wire segments and even overlapping wires when a gate with an even number of inputs had several of its first half of inputs wired directly to the circuit inputs.
  • Bug fix: The "Set As Expression" button would sometimes not be disabled when pressed (particularly when the previous expression was the same except for spaces).

New in Logisim 2.6.1 (Dec 21, 2010)

  • Feature: A German translation of the GUI strings is now included. (Translation of the documentation is not yet available.)
  • Feature: Added a Label and Label Font attribute for all components in the Gates library except Constant.
  • Feature: Added the Bit Finder component into the Arithmetic library.
  • Feature: Added tool tips for each input and output of all Arithmetic components.
  • Feature: Memory image files generated by a text editor or other file can include comments: Logisim ignores the '#' character and the following characters on that line.
  • Feature: Added Off Color and Background attributes for the I/O library's Seven-Segment Display and Hex Digit Display.
  • Feature: Added Color and Background attributes for the I/O library's TTY component.
  • Feature: Enhanced the splash screen and "About" dialog to give credit to other team members.
  • Interface change: The Preferences dialog now defaults to the International tab, the languages appear in a list rather than a drop-down box, and each language is described by both its own language and the currently selected language.
  • Interface change: Even after selecting a wire, starting a drag from one of its endpoints will lengthen or shorten the wire. (Previously the wire would be moved in this situation.)
  • Bug fix: If you have never previously executed Logisim, it should default to the platform language if a supported translation is available.
  • Bug fix: Circuit statistics were not computed recursively as intended (it was done correctly in 2.5.1).
  • Bug fix: When the simulation frequency is more than 1KHz, choosing "Tick Once" after a series of several ticks would lead to multiple ticks occurring.
  • Bug fix: The Bit Adder's output bit width was one bit too small when the maximum possible count was a power of 2.
  • Bug fix: With a multiplexer/demultiplexer/decoder selected, pressing 1 through 4 alters the number of select bits, but 5 does not work properly.
  • Bug fix: If you select a wire and drag one endpoint in the same direction the wire is facing, then it shows just a fragment of the resulting longer wire being selected.

New in Logisim 2.6.0 (Dec 21, 2010)

  • Feature: You can customize how a subcircuit component will be drawn, in place of the default rectangle-with-notch appearance earlier.
  • Feature: When the poke tool is selected, clicking a subcircuit will lead a magnifying glass to appear over the subcircuit, and double-clicking in the magnifying glass will enter the subcircuit's state.
  • Feature: For input and output pins, pressing Alt with a direction key changes the pin's Label Location attribute.
  • Feature: Multiplexers, demultiplexers, decoders, and priority encoders all support 5 "Select Bits."
  • Feature: The Arithmetic library now includes a "Bit Adder" which computes the number of 1 bits in its input(s).
  • Feature: The I/O library's LED has an "Off Color" attribute.
  • Feature: The facing of a subcircuit can be changed after it is placed into a circuit.
  • Bug fix: After removing a circuit from the project, an Undo would place the removed circuit at the end of the project's list rather than back in its previous location.
  • Bug fix: When loading more than 4,096 memory entries into RAM or ROM, if the 4,096th entry (or a multiple of 4096 entries) was at the end of a line in the text file, all subsequent entries were ignored.
  • Bug fix: When the circuit is scaled using the zoom controls, tool tips would show up in the wrong location.
  • Bug fix: A "ConcurrentModificationException" was observed from the EventSourceWeakSupport class. It was changed to guarantee that it does not occur there.
  • Bug fix: Sometimes a diagonal line would appear across the layout when you selected a different component to be added.
  • Interface change: The menu shortcut for moving up in the state hierarchy is now MenuKey+Left, since MenuKey+Up is used for raising the selection (and MenuKey+Shift+Up for raising the selection to the top). Similarly, moving down the hierarchy is MenuKey+Right.
  • Interface change: When the grid is being shown and the zoom factor is 200% or more, each grid dot is actually a square of several pixels.
  • Interface change: The project toolbar is drawn slightly differently, with a darker "add" icon, and of course the added elements for selecting to edit the layout or the appearance. Behind the scenes, the icons are drawn differently - this will likely be most apparent under MacOS X, where it was fairly ugly before.
  • Interface change: Subcircuits are drawn (by default) with a slightly different notch to adapt to the quadratic Bezier curve supported by the customized appearance module.
  • Interface change: The explorer pane's magnifying glass is drawn with a hint of blue in its center.
  • Architectural change: Subcircuits are implemented using the newer logisim.instance API rather than the deprecated logisim.comp API.

New in Logisim 2.5.1 (Sep 22, 2010)

  • Feature: Added the "Get Project Statistics" menu item and the "-tty stats" command-line option.
  • Feature: The integrated help system now includes full-text searchAlso, the most recent version of the JavaHelp library is packaged with Logisim.
  • Feature: Added Control Line Location to Controlled Buffer and Controlled Inverter, and added Gate Size attribute to the Controlled Inverter.
  • Feature: Increased the maximum number of inputs for gates to 32.
  • Feature: Added a third, larger Gate Size option to the multi-input logic gates, which may look better for very large numbers of inputsWhat was called "Wide" before is now "Medium."
  • Feature: The color and font dialogs were modified so that their strings could more easily be translatedA Russian translation is included.
  • Interface change: The rectangular OR and NOR gates are drawn with the proper "=1" label rather than ">0".
  • Interface change: The shaped OR, NOR, XOR, and XNOR gates are drawn slightly differently, using Java's GeneralPath classAs a result, the corners connect well and the "wings" for a large number of inputs don't get overly deep.
  • Bug fix: In 2.5.0, Logisim projects were opened assuming a UTF-8 encoding, and it refused to open files with invalid encodingIt now first attempts opening the file assuming UTF-8 encoding (since that is now the default save format); but if that fails, it attempts to open the file using the platform's default encoding.
  • Bug fix: An exception could occur when loading multiple libraries into a project, at least one of which is a Logisim file.
  • Bug fix: It was reported that a race condition could occur when opening many files(Thanks to Joshua Cranmer of Georgia Tech for providing the report and suggesting changes to fix it.)
  • Bug fix: In previous versions, projects were saved using the platform's default encoding (even though the XML indicated it used UTF-8), leading files to be non-portable if they included non-ASCII charactersNow the file is always saved using UTF-8.
  • Bug fix: Using DIN 40700 gate shapes, the OR and NOR gates were drawn improperly for even numbers of inputs, and the NAND and NOR gates' output lines did not quite go as far as their input.
  • Bug fix: With the font dialog library, changes to the selected language would not be reflected until the program was restarted.
  • Bug fix: The documentation used the XHTML " />" idiom for childless elements like "
  • ", but this confuses Java 5 systems (not Java 6) so that the ">" appears when viewing the pages in the integrated help systemAll instances of this idiom were removed.
  • Internal modification: All references to the JDOM library were removedLogisim now uses Java's integrated XML support instead.

New in Logisim 2.5.0 (Aug 30, 2010)

  • Feature: When moving components, Logisim will modify the wires in the circuit so that connections are preserved. For example, if you have an input connected to an AND gate, and you move the AND gate away from the input, Logisim will add new wires so the input remains connected. This will not happen if the shift key is pressed during the drag. This feature can be turned off under the Canvas panel of the Project Options dialog.
  • Feature: A complete Russian translation of the documentation is added. This was produced by Ilia Lilov, a student at Moscow State University of Printing Arts.
  • Feature: For many components, typing digits can configure it - for example, you can select an AND gate and type 3 to change the number of inputs to three - and you can type Alt-3 to change the bit width to 3. That works whether you're adding a new AND gate or you have an existing AND gate selected. A similar principle applies to most components - typing a digit will configure how "big" it is, or it will configure the bit width if the Alt key is down at the same time.
  • Feature: The new "Tunnel" component in the Base library allows you to connect two points in the circuit as if they were connected by wire - all you need is two (or more) tunnels sharing the same label.
  • Feature: The new "Pull Resistor" component allows one to add a wire that pulls floating values to 0, 1, or the error value.
  • Feature: The new "Bit Extender" component in the Base library takes an input of one width and produces an output of another width - the additional output bits can be configured to be 0, 1, the input's topmost (sign) bit, or the value coming in an additional one-bit input.
  • Feature: The gates in the Gates library allow individual inputs to be negated.
  • Feature: The gates in the Gates library allow any number of inputs from 2 to 16.
  • Feature: The I/O library's LED Matrix component received a "Light Persistence" attribute.
  • Feature: Added the "-load" command line option for loading programs into RAM before command-line circuit execution.
  • Feature: Added the "halt", "speed", and "tty" arguments for the "-tty" command line option to customize the behavior of command-line circuit execution.
  • Feature: When saving a file, Logisim asks the user if it sees an extension other than ".circ". The identification of extensions is now more strict. Also, the dialog for replacing the extension has more descriptive options, including a new option of adding ".circ" to the name's end.
  • Feature: In saving files, attribute values are not written when they match with the default value. This brings the file size down dramatically, particularly for small circuits - a nearly empty circuit would result in a 14KB file before but now takes less than 3KB.
  • Feature: As you are shortening a wire, the full wire is never drawn onto the screen (so it doesn't have to be painted over in white as before).
  • Interface change: When pasting or duplicating the selection, the subsequent move of the selection is treated as part of the same action so that an "Undo" undoes the move as well as the preceding paste/duplicate.
  • Interface change: The "false" value is drawn with a slightly lighter green in order to be more distinctive from the black of multi-bit lines.
  • Interface change: An "error" value is drawn with a darker red than before, since it arises more often for innocuous reasons with the new gate behavior of 2.4.0.
  • Interface change: Added the Control-K shortcut for the Ticks Enabled menu item.
  • Bug fix: When viewing a subcircuit of a larger circuit that is running, poking a pin brings up a dialog stating: "The pin is tied to the supercircuit's state." For some subcircuits (it seems those that themselves contain subcircuits containing subcircuits), clicking OK would result in inaccurate behavior.
  • Bug fix: In the explorer pane, libraries would collapse when the project is saved and when it is changed from the saved version. This would also happened with "Set As Main Circuit" and with moving circuits.
  • Bug fix: When a component's pins changes locations due to a change in an attribute such as Facing, wires were not merged or split appropriately.
  • Bug fix: Placing an exact copy of an existing wire on top of itself would mess up the internal representation so that connection nodes would be drawn where they should not.
  • Bug fix: You could configure a custom template in the application preferences dialog, but it would revert to the default plain template on restart.
  • Bug fix: When opening a project just after starting Logisim, the default empty project's circuit attributes were still shown in the attribute table, and changes to those attributes resulted in an error dialog.
  • Bug fix: If a circuit within the current project was added to the toolbar, then it would disappear when the project was reloaded.
  • Bug fix: If a wire was started, dragged, and then dragged back to the beginning to effectively "cancel" the new wire, that point where you started would be used as the starting point when you begin creating the next wire.
  • Bug fix: When drawing a wire using the Edit Tool, if the clock was ticked during the drag, the green circle would be drawn at the drag's start.
  • Bug fix: When editing a label using the Text Tool, changes to the component's Label attribute via the attribute table had no effect.
  • Bug fix: A one-bit pin with its "Three-State?" attribute set to "yes" would not draw a red circle as the background when it sees an error input, wehreas one with "Three-State?" set to "no" would.
  • Bug fix: In some circumstances, the Combinational Analysis module's Build Circuit feature would wire inputs into a gate incorrectly. In particular, this would happen when you have a gate with many inputs, and some in the upper half of the inputs have to be bent upwards (or some in the lower half had to be bent downwards).
  • Bug fix: From the Combinational Analysis module, when building a circuit from with only NAND gates, any NOT gates converted to a NAND gate would be built with a three-input gate when only two were used.
  • Bug fix: If a circuit other than the one being viewed was right-clicked in the explorer pane, the Analyze Circuit was chosen, and then Build Circuit pressed, the dialog box would suggest that the currently viewed circuit be replaced, not the one that was analyzed.
  • Bug fix: When viewing attributes for the wire, the strings "horizontal" and "vertical" were displayed in English regardless of the language chosen.
  • Bug fix: Many minor repairs to the documentation, nearly all of which were suggested by Ilia Lilov of Moscow State University of Printing Arts.
  • Bug fix: Added the mysteriously missing 128 Hz option into the Tick Frequency submenu.
  • Architectural change: All code was converted to use Java 5 generics.
  • Architectural change: The internal technique for applying changes to a circuit was changed to a transaction-based approach, and all wire irregularities (i.e., wires that need to be split or merged) are identified at the conclusion of each transaction in a generic way.
  • Architectural change: All components in the Gates library now use the logisim.instance API for their implementation rather than the older logisim.comp API.
  • Architectural change: The Pin, Probe, Clock, and Text components were also rewritten to use the logisim.instance API, and they've been moved into the package logisim.std.base. The only pieces still using the logisim.comp API are the Wire, Splitter, and Subcircuit components from Base and all components from Legacy.

New in Logisim 2.4.0 (Jul 31, 2010)

  • Feature: Added a Russian translation of the internal strings, contributed by Ilia Lilov, a student at Moscow State University of Printing Arts.
  • Feature: Added the "-tty" and "-sub" command-line options to provide basic support for scripted verification.
  • Behavioral change: The AND/OR/NAND/NOR gates now have a very different behavior when any inputs are error or floating: They are short-circuited, so that 0 AND X is 0 (and 1 OR X is 1). Inputs are ignored only if they are unconnected and the user has not selected the "Error for undefined inputs" option (in the Simulate tab under Project > Options). Also, if all inputs are left unconnected, the output is the error output.
  • (This is meant to address oscillation problems when building a simple latch with two NAND or NOR gates. Thanks very much to Brandon Whitehead, a teaching assistant at Georgia Tech University, who worked hard to identify the problem and experiment with ways to address it.)
  • Behavioral change: Similarly, for XOR/XNOR/Even Parity/Odd Parity, inputs are ignored only if they are unconnected and the user has not selected the "Error for undefined inputs" option (in the Simulate tab under Project > Options). Also, if all inputs are left unconnected, the output is the error output.
  • Performance enhancement: The code for drawing the grid should be much faster on some platforms. It now creates an internal image for a block including several grid dots, and it paints that block so multiple dots are drawn at once.
  • Performance enhancement: The code for drawing the canvas is build so it is used much less frequently.
  • Bug fix: The language selected from the Logisim Preferences was not preserved between executions of the program.
  • Bug fix: In the Simulate menu, the 2048 and 4096 Hz tick frequency options did not work at all. Now they do (if your computer is fast enough and your circuit is simple enough that it can be managed!).
  • Bug fix: In combinational analysis, the "minimized" sum-of-products expression would erroneously choose terms that included more variables than necessary. While Logisim doesn't guarantee that the expression is truly optimal, it now is a bit smarter about looking for terms with as few variables as possible.
  • Bug fix: The Logging module would not work properly when the user selected an element that lies nested two or more levels deep within subcircuits.
  • Bug fix: When drawing the shaped versions of OR/NOR/XOR/XNOR gates facing south or west, the legs would be colored in the reverse order of their inputs.
  • Documentation fix: Many very minor fixes contributed by Ilia Lilov.

New in Logisim 2.3.5 (May 31, 2010)

  • Bug fix: With the Edit Tool, if you selected a wire by clicking it and then dese lected it, then tried to add a new wire, it would actually add from the point wh ere the wire was selected.
  • Feature: With the Edit Tool, pressing backspace when nothing is in the selection will undo the most recent wiring action.
  • Feature: Added two more tick frequency options: 2048 and 4096 Hz.

New in Logisim 2.3.4 (Apr 2, 2010)

  • Bug fix: Adding the Hex Digit Display component would cause an exception each time the circuit was redrawn, effectively disabling Logisim from usability.
  • Bug fix: Adding a component to the toolbar from a library other than Base or Gates and then saving would cause an exception, failing to save the project.
  • Bug fix: Single-clicking with the Wiring Tool and then moving the mouse would display ghost wires, as if clicking again would add the wires, but clicking again would simply start the ghost wires from another location. Now, the single-clicking the Wiring Tool still starts the ghost wires, but single-clicking again adds those drawn wires and then goes back to not drawing wires.

New in Logisim 2.3.3 (Mar 17, 2010)

  • New feature: Circuits can have labels attached to them, which are drawn each time it is used as a subcircuit.
  • New feature: You can rename a circuit by editing its "Circuit Name" attribute (which was previously read-only).
  • Deleted feature: Because a circuit can be renamed through its attribute, the "Rename Circuit" item is dropped from the Project menu, the project toolbar, and the explorer's pop-up menu for circuits.
  • New feature: The Input/Output library's LED and 7-Segment Display components have an attribute configuring them to light when input is 0 (low).
  • New feature: The Memory library's Counter has a new "Action On Overflow" attribute for configuring what happens when the counter reaches its maximum (minimum if decrementing). The choices are to wrap around (what it did previously), to remain at the current value, to load the next value from the Data input, or to continue counting.
  • Bug fix: When changing the name of the viewed circuit, the window's title bar did not change to reflect the new circuit name.
  • Bug fix: After duplicating a subcircuit, you could press an arrow key to modify its facing, but the grab handles did not move accordingly.
  • Bug fix: When viewing a circuit from a loaded Logisim library, you were allowed to modify components within the circuit.
  • Bug fix: Changed the Memory library's Counter so its "Maximum Value" attribute is represented in hexadecimal. Previously, it would not accept negative values for this input, which led to problems with 32-bit counters.
  • Bug fix: The Memory library's Random Generator component was not at all random in the low-order bits. This new version, which shifts out those low-order bits, has been tested more thoroughly.
  • Bug fix: For the Memory library's Counter, the tool tip on the "Load" input referenced an "Enable" input, which is actually named the "Count" input.
  • Bug fix: Using the "Revert All To Template" button in the Project > Options... window would remove the Edit Tool from the toolbar, even if it existed in the template.
  • Bug fix: When the Combinational Analysis module generates a circuit, it inserts constants appropriately so that all inputs are defined for all gates. This way, the constructed circuit works correctly even when "Error for undefined inputs" is selected in the Project Options window.
  • Bug fix: Attributes for the Edit Tool and Select Tool were saved into the project file, though they were unimportant to reloading the project, since these tools' attributes are simply based on the current selection.
  • Refactoring: Created a factory method for creating JFileChoosers, in an attempt to work around IOExceptions when a JFileChooser opens.

New in Logisim 2.3.0 (Jul 6, 2009)

  • Feature: The selection tool and wiring tool are combined into a single
  • "Edit Tool" where the behavior is identified by whether the mouse
  • location is likely to be a starting point for a wire.
  • Feature: Added "Duplicate" to the Edit menu, which creates a copy
  • of whatever is currently selected. It's like doing copy-then-paste,
  • except it doesn't change the contents of the clipboard. The MenuKey-D
  • shortcut executes this; also, when the Edit Tool is active, the Insert
  • key executes this.
  • Feature: After adding an individual component, the program switches
  • immediately to the Edit Tool with the just-added component
  • selected. This is because after adding a component, the user
  • will more often want to add wires or move things around than add
  • additional copies of the component; however, the new Duplicate menu
  • item (available with Insert or MenuKey-D) easily allows the user to
  • continue making copies.
  • Feature: The automatic-switching behavior after adding new
  • components can be turned off via the new Tools tab in the Preferences
  • window. Also, the "Show Ghosts" configuration item has been moved
  • from the project options window to the Tool tab in the application
  • preferences window.
  • Feature: With the Edit Tool or Select Tool, attributes shared by all
  • selected components are displayed, and changes to any value affects
  • all selected components at once.
  • STANDARD LIBRARIES
  • Feature: All built-in libraries (except Legacy) are now loaded by
  • default. To accommodate this, the libraries were changed so that
  • the Java classes implementing each individual component are not
  • loaded until the user actually tries to place a component into the
  • circuit. This reduces the damage to the startup speed.
  • Feature: New components have been added into the Plexers library
  • (Priority Encoder), Arithmetic library (Shifter), and the Memory
  • library (Counter, Shift Register, and Random - the last for iterating
  • through a pseudorandom sequence).
  • Feature: The basic gates in Logisim have always ignored any floating
  • inputs, to accommodate leaving some inputs unconnected. In reality,
  • though, an unconnected or floating input leads to unpredictable gate
  • behavior. The project options window now has an option allowing you
  • to configure the gates to have an error output in such a situation.
  • Feature: The XOR and XNOR gates have an attribute allowing a user
  • to configure how the gate will behave given three or more inputs:
  • It can be on if exactly one of the inputs is one (the default, and
  • the only option in previous versions of Logisim), or it can be on if
  • an odd number of the inputs is 1.
  • Feature: The RAM component has an attribute allowing the user to select
  • among three different interfaces for transferring data: the default
  • one, which uses a single data port for both loading and storing data;
  • an asynchronous alternative, where there is no clock input with storing
  • (but still a single data line); and one that includes separate lines
  • for the data associated with a store and with a load.
  • Feature: The Memory library's flip-flop and register components can
  • now have labels associated with them. Also, these components include
  • an Enable pin which, when zero, leads any clock triggers to be ignored.
  • Feature: There were several components that included attributes
  • that could only be changed before the component was added into
  • the circuit. Most of these attributes can now be changed. Affected
  • components include the splitter (facing and fan-out attributes),
  • the various gates in the Gates library (facing, size, and number of
  • inputs), and the components of the plexers library (facing and number
  • of select bits).
  • Bug fix: In changing an input pin from a three-state to a two-state
  • pin, any floating values held by the pin are silently changed to
  • zeroes in order to coerce the pin into a two-state pin.
  • OTHER
  • API Change: A new package (com.cburch.logisim.instance) provides an
  • API that dramatically simplifies the development of JAR libraries. The
  • built-in Arithmetic, Plexers, Memory, and I/O libraries have been
  • refactored to use it. (This reduced the number of lines in these
  • libraries by about 19%! That's before adding the new components.)
  • Feature: Added the capacity to export PNG and JPEG files in addition to
  • GIFs. The menu option Export As GIF... is renamed to Export Image....
  • Feature: For color attributes, the program uses ColorPicker by Jeremy
  • Wood (https://colorchooser.dev.java.net/) rather than the clumsier
  • JColorChooser - which also didn't allow configuring colors' opacity.
  • Feature: For font attributes, the program uses JFontChooser by Christos
  • Bohoris (http://www.connectina.com/components/fontchooser.html)
  • rather than the clumsier component that I had developed. One major
  • benefit of this dialog is that it allows you to choose among all font
  • families supported by your platform.
  • Bug fix: With multiple windows open, if a tool for adding a component
  • was selected in one of the windows, that window would come on top as
  • soon as the mouse moved over that window's canvas.
  • Bug fix: When a circuit is removed from the project while a tool for
  • adding subcircuits is selected, a different tool is selected.
  • Bug fix: If, while viewing the state of a subcircuit, the parent
  • circuit (or grandparent...) is deleted, then the viewed state is
  • "detached" from that parent.