Logisim release history to version 2.0.0
Most recent releases
2.5.0 to 2.6.2
2.2.0 to 2.4.0
2.1.0 to 2.1.8
2.0.0 to 2.0.6
2.0 Beta 1 to 2.0.0
0.3 to 1.09c
Version 2.0.0 (31 Oct 2005)
- Feature: Components have "tool tips" that display when the mouse
hovers over them. For subcircuits, hovering over a pin will display the
label for the corresponding pin in the subcircuit layout (if it has
one). Also, several built-in components use this feature, including all
components in the Plexers and Memory libraries, as well as the
Splitter. This feature can be turned off via the Canvas tab of the
- Feature: Added a Reset Simulation item to the Simulate menu to
clear all information about the data within a circuit.
- Feature: Windows executable released to provide better integration
with that platform. (This uses the launch4j program.)
- Feature: Poking a wire also displays the base-10 two's-complement
interpretation of the value.
- Bug fix: If you opened a file into the initial window immediately
after startup, any changes to its project options would have no effect
on the window.
- Bug fix: Adding a tool to the toolbar shared the same attributes
as the original tool, rather than having a separate attributes as
intended. Also, the icons for tools newly added to the toolbar did not
update immediately with changes to attributes (for tools, like Pin and
Splitter, whose icons reflect some attribute values).
- Bug fix: The Simulate menu's Simulation Enabled menu item check
did not update properly when the simulation halted due to
Version 2.0 Beta 24 (24 Oct 2005)
- Feature: Wrote reference pages for all components in the built-in
libraries. A new item in the Help menu is a shortcut to this
- Bug fix: The wiring tool was intended to repair wires that overlap
stub wires, such as those on an OR gate or a Controlled Buffer, but
this feature was not working.
- Bug fix: A selection consisting only of text labels was mistakenly
snapped to the grid.
- Bug fix: The Memory library's RAM component did not work with 32-bit
data (all data would be set permanently to zero). Also, it did not
load 32-bit data properly from an image file. And requests to clear
memory from the popup menu did not work when the first byte of
memory was already zero. (Thanks to Tom Parks of Colgate University
for discovering all of these bugs, as well as the Adder bug below,
and for suggesting fixes to them.)
- Bug fix: The Arithmetic library's Adder component did not properly
compute its carry output when adding 32-bit data together.
- Bug fix: The Divider component would sometimes output a negative
remainder, due to Java's handling of division. The remainder is now
always computed to be between 0 and 1 less than the divisor. The
quotient is the integer such that the quotient times the divisor,
plus the remainder, yields the dividend. In other words, the Divider
component essentially performs unsigned division.
- Bug fix: The Plexers library's Multiplexer component's included a
Tristate? attribute even though it had no effects on the component.
This attribute was removed.
- Minor change: Renamed the Base library's Text component to
- Minor change: Replaced the "Tristate?" attribute of the Base
library's Pin and the Plexers library's Demultiplexer and Decoder to
"Three-state?" instead to be consistent with common usage (and to
comply with a trademark on the former word).
- Minor change: Reordered the pin component's attributes so that the
Output? attribute appears earlier in the list and the Three-state?
and Pull Behavior attributes appear together.
- Minor change: Renamed the Data Width attribute on multiplexers and
demultiplexers to Data Bits instead, so that the attribute name is
consistent with the Select Bits attribute.
Version 2.0 Beta 23 (16 Oct 2005)
- Bug fix: Attempts to change the Value attribute of a Constant
component (in Gates library) would result in an exception, with no
change to the value. A similar bug existed with the High/Low duration
attributes of a Clock component (in Base library). This bug may have
affected other components' attributes as well.
- Bug fix: The images for tools in the beginner's tutorial were badly
Version 2.0 Beta 22 (12 Oct 2005)
- Feature: Cleaned up configuration interface by adding a window for
editing application preferences (accessible via the File menu or
Logisim menu, depending on whether you use a Macintosh or not) and a
window for editing project options (accessible via the Project menu).
This replaces the Options menu and the pop-up menus for configuring the
- Feature: User's Guide completed, edited, and updated for new
version. All screen shots updated to reflect minor changes to the
interface and to take less disk space.
- Feature: Added divider, negator, comparator to Arithmetic library.
- Feature: Added an asynchronous preset input to the flip-flop
components. (The left input on the bottom is the preset input, the
right input is the clear input.)
- Bug fix: Re-selecting a tool displays its attributes (if not already
- Bug "fix": Added a Close button to the splash screen to reduce
severity of problem that when opening files specified on the command
line, dialog boxes appear beneath the splash screen on some
Version 2.0 Beta 21 (25 July 2005)
- Bug fix: The "Revert To Defaults" option (now named "Revert To
Template") would lead to errors when saving file.
- Bug fix: With Revert To Template, the attributes associated with
tools were not restored.
- Bug fix: Changes to attributes of tools in the explorer pane were
not immediately reflected in their icons, for attributes that affect
- Feature: Added Select Template... option into the Options menu.
Also, added page into documentation explaining templates.
Version 2.0 Beta 20 (19 July 2005)
- Maintenance change: Increased speed and memory performance. Logisim
is still CPU- and memory-hungry, but quite a bit less so.
- Feature: Added a "Data Bit Width" attribute to the RAM component
so that it can store word lengths other than 8-bit bytes.
- Feature: Added a multiplier component to the arithmetic
- Feature: Revamped the "About" graphic that is also used in the
splash screen to reduce the memory usage inherent in loading a large
image. (While I was at it, I animated the simulation.)
- API change: Refactored the code surrounding the storage of
attribute values, since the previous technique used was unnecessarily
Version 2.0 Beta 19 (14 July 2005)
The changes to this version are almost entirely minor,
but cumulatively, this is a substantial revision. Because of the
number of changes, they are listed in categories.
- Feature: Remembers the current state of each circuit when you
switch to viewing another circuit in the same project, so that when you
go back to view the original circuit, the old state appears again.
- Feature: Added a Project menu, largely duplicating what was in the
explorer pane's pop-up menus. (Some users deemed these pop-up menus
- Feature: Allows you to rearrange the ordering of circuits within a
file via the explorer pane.
- Feature: You can delete a circuit by selecting it in the explorer
window and pressing the backspace key.
- Bug fix: Removing the currently viewed circuit did not change the view
to another circuit.
- API update: Added the ComponentState interface to accomodate
remembering state when viewing a different circuit. The revised
Increment example library (namely, its CounterState class) reflects
- Feature: Addresses the case where you are working with multiple
projects, some used as libraries as others: As soon as one project is
saved, the changes are propagated to other projects using it as a
- Feature: Added a menu option in the explorer pane to reload a
library from disk. (This is not extremely useful due to the previous
item, but it can be useful, particularly if you are developing your own
- Feature: Prevents saving a file which would lead to a circular
reference among libraries (if two files are mutually libraries of each
other, for example).
- Bug fix: The ".circ" extension to loaded Logisim libraries is no
- Bug fix: Opening files that already were open would simply display
the window, without reading from disk. Now, the file is reloaded,
although if there are unsaved changes, Logisim prompts the user about
whether to lose those changes or create a new window.
- Bug fix: Libraries could be unloaded if they contained components
that weren't used in the circuit but were in the toolbar.
- Feature: Prevents the addition of multiple components at the same
location - or, more precisely, prevents adding components who have
outputs at the same location.
- Feature: Most error messages from tools are displayed within the
canvas rather than through a dialog box that the user must click to
- Feature: Pressing Command-1 will select the first tool, Command-2
the second, etc. (The key combined with "1" depends on the platform -
it is Control on many platforms.)
- Feature: As you drag to shorten a wire using the wiring tool, it
displays a visual hint (by drawing white over the wire rather than
- Feature: Pins can deal with any number of bits up to 32.
(Previously, they could only handle less 8 bits, or a multiple of 8
- Feature: Pins on a subcircuit can pull the values they receive up,
down, or leave the values unchanged.
- Feature: The RAM component's select input is now "pull-up", so that
if left unconnected, it defaults to a 1. Similarly, the output enable
input is also "pull-up." The net effect that if all of the lower inputs
are left unconnected, the RAM component behaves like ROM (except that
the data must be manually loaded).
- Bug fix: A RAM component with fewer than sixteen bytes caused
run-time errors. Also, the RAM component's state did not properly
update when the number of address bits were changed.
Version 2.0 Beta 18 (11 July 2005)
- Feature: A wire drawn across any connecting points of any
components in the circuit will now be split by that connecting point.
(Previously, wires would only be split by other wires' endpoints.)
- Bug fix: Current selection was lost when user saved file.
- Bug fix: Moving large groups of wires sometimes left "copies"
behind. The code underlying adding wires to a circuit was completely
- Bug fix: Most selection manipulations, including moving the
selection and cut/copy/paste/clear, did not undo to previous state
properly (particularly with regards to restoring the wires).
- Bug fix: As of Beta 15, the selection handles drawn around wires
were rather ugly, drawing four handles rather than two. They now draw
- Bug fix: Canvas resizes immediately when window resized.
- Bug fix: With Select Tool, shift-click toggles items into/out of
selection. (It was control-click, but that's now mapped by default to
the Menu Tool in order to facilitate one-button mice.)
Version 2.0 Beta 17 (6 July 2005)
- Feature: Added the Combinational Analysis module,
which permits conversion between combinational circuits
drawn in Logisim, truth tables, Boolean expressions,
and minimized sum-of-products expressions.
(This new feature is quite a large addition, making
Logisim's code base 23% bigger than the previous one.)
Version 2.0 Beta 16 (29 June 2005)
This is the first open-source release of version 2.0.
- Feature: Added support for importing third-party libraries
of components developed in Java.
- Feature: Added documentation of the above feature, including
the com.cburch.incr library illustrating it, as well as
documentation relating to internationalization.
- Feature: Pasting now does not immediately drop all the
components into the circuit; instead, they are drawn as ghosts
until it is dragged into its intended place or a new selection
- Bug fix: Relative pathnames did not always work as intended. Also,
changed the design to use relative pathnames only for files that are at
most one directory away (i.e., same directory, parent directory, or
- Maintenance change: Refactored much of the structure in
the process of cleaning up the API so that it could be used in
developing JARs (and so I wouldn't be quite so embarrassed if
somebody read any of the source code).
Version 2.0 Beta 15 (10 June 2005)
- Feature: Added support for multiple windows, with a different
project open in each window, all displayed in the new Window menu.
- Feature: Program has features allowing it to integrate well
with Mac OS X (most particularly with the Macintosh menu style),
including a distribution that supports customized
Logisim icons for the application and for project documents.
- Feature: Added support for a standard Logisim
``.circ'' extension on filenames.
- Maintenance change: Changed references to Web pages to the
new Web address, and placed all source code into
Version 2.0 Beta 14 (13 May 2005)
- Feature: Register component generalized to handle up to 32 bits.
- Bug fix: Changing attributes of splitter after placed in circuit
would lead to width incompatibility messages.
Version 2.0 Beta 13 (12 May 2005)
- Feature: Clock component now added, with a Simulate menu for controlling
- Feature: Navigate into a subcircuit's state within a larger circuit
by choosing the View option in its popup menu; navigate out using the
- Feature: Oscillating circuit automatically halts simulation.
- Feature: Splash screen is prettier.
Version 2.0 Beta 12 (11 May 2005)
- Feature: Logisim v1.0 files can be loaded through the Open menu
item. The new Legacy library includes components whose v2.0 equivalents
are not compatible.
- Feature: References to library files are saved using relative pathnames.
- Feature: The NOT gate has an option for being narrow.
- Bug fix: The New menu option creates a file with an appropriate toolbar.
- Bug fix: The file dialog boxes remember the current directory.
- Bug fix: Saving a file in the middle of editing text would not save
Version 2.0 Beta 11 (10 May 2005)
- Feature: Added Plexers library with Multiplexer, Demultiplexer, and
- Feature: Added Arithmetic library with Adder and Subtractor
- Feature: Changed splitter's appearance for large fanouts so that it
can support a fanout of up to 32.
- Feature: Oscillation errors are drawn within the canvas rather than
with a dialog box.
- Maintenance Change: Rewrote the propagation engine to provide for
future enhancements. Testing indicates that it still works correctly.
Version 2.0 Beta 10 (9 May 2005)
- Bug fix: Moving a subcircuit could lead to what was mistakenly
identified as an "oscillation error."
Version 2.0 Beta 9 (9 May 2005)
- Bug fix: Deleting a wire going into an input drawn blue leads to
that input being drawn gray.
- Bug fix: A moved flip-flop did not automatically re-propagate its state
- Bug fix: The wire-repairing feature would mistakenly "repair"
wires that almost reach a component.
- Bug fix: Changing a pin's Facing attribute did not update the
location of pins on the rectangles representing that component.
- Bug fix: Multi-bit AND gate would give wrong value when the first input
- Bug fix: The RAM component did not reliably clear properly,
particularly after loading a memory image.
- Bug fix: For the RAM component, attempts to type an address would
end up rounding each hex digit down to a multiple of 4.
- Feature: On-line documentation included.
- Feature: Draws a halo around the component whose attributes are
currently being viewed.
- Feature: Made control-clicking equivalent to right-clicking to
support a one-button mouse better.
- Feature: Wires drawn past a splitter wire are silently repaired (as
already done with OR/NOR/XOR/XNOR gates and Controlled
- Feature: Added a progress bar to track the booting process.
The majority of bootup time is being spent in code that I can't
control much: Sun's approach to running Java is pretty efficient
once it gets started, but slow startup is hard to avoid.
- Feature: Using the text tool displays the edited component's attributes.
Version 2.0 Beta 8 (7 May 2005)
- Bug fix: XOR, Even Parity, Odd Parity gates would emit
values even when all inputs were unspecified.
- Feature: Printing output is more polished (temporary circuit state
not shown, unused legs on OR/NOR/XOR shaped gates are excluded,
- Feature: Printer View option added to Options menu.
- Feature: Export As GIF option added to File menu.
- Feature: Wiring Tool automatically repairs wires drawn
through the legs of XOR/NOR gates and Controlled
Buffers/Inverters. (It already did this for OR gates.)
- Feature: XNOR gate added to Gates library.
- Feature: Poking flip-flops toggles their state (which is now
displayed inside the flip-flop).
- Feature: Flip-flops have a pin for asynchronously clearing.
- Feature: Tools have hand-drawn icons.
Version 2.0 Beta 7 (5 May 2005)
- Bug fix: Dragging a four-way wire intersection would disconnect into
- Bug fix: Added to the toolbar, the splitter tool's attribute set
would not update properly.
- Bug fix: With the wiring tool, you could shorten a wire to zero
pixels; now, this removes the wire.
- Bug fix: The initial file selected in the Save dialog could be a
recently loaded Logisim library.
- Feature: The splitter bit attributes include hints of the direction
in which wires are numbered.
- Feature: Splitter bit attributes are editable after being placed in
- Feature: Tools in toolbar and explorer pane have tooltips.
Version 2.0 Beta 6 (5 May 2005)
- Bug fix: The propagation engine would sometimes ignore values emitted by components.
Version 2.0 Beta 5 (4 May 2005)
This was available for only about an hour before I discovered the bug that led to
- Bug fix: When several wires were dragged with the select tool, they did not reconnect on dropping.
- Bug fix: Width conflicts between components meeting at a point were not identified.
- Bug fix: The value output by a one-bit constant component could behave in unexpected ways.
- Bug fix: Project title (in title bar and explorer pane) did not track the name of file opened.
- Bug fix: The Mouse Mappings dialog only worked the first time it was opened.
- Bug fix: A change in circuit name would not immediately appear in the explorer pane.
- Bug fix: The splitter tool icon was drawn in the opposite direction of the current direction attribute.
- Feature: All current width conflicts are identified for a circuit - not just the first one found.
- Feature: XOR, Odd-Parity, and Even-Parity gates treat unspecified inputs as FALSE
- Feature: The selection is emptied when the user selects a new tool (unless the Select Tool is permanently mapped to a mouse button).
- Feature: Double-clicking a circuit name in the explorer pane changes the circuit viewed in the canvas.
- Feature: Exiting the program or changing files displays a more standard Save/Discard/Cancel dialog box.
Version 2.0 Beta 4 (4 May 2005)
Again, a special thanks to the students of UC/Berkeley's CS61C who made many of the
suggestions for this revision.
- Bug fix: A subcircuit nested within a larger circuit could not be moved.
- Bug fix: Changing a subcircuit pin's width could lead to freezing when opening a
supercircuit already containing it.
- Bug fix: Switching the attribute set displayed while an attribute's combo box
was open could lead to endless exceptions.
- Feature: Input and output pins are now visually distinct (output pins are circles/rounded
rectangles). Constants' appearance was also changed to allow for rounded output pins.
- Feature: Most attributes, including pin and gate bit widths, are editable after a
component is created. The remaining exceptions are gate size, the number of gate inputs,
and the main splitter attributes.
Version 2.0 Beta 3 (1 May 2005)
A special thanks to the students of UC/Berkeley's CS61C who made many of the
suggestions for this revision.
- Bug fix: The program could not save a project that imported other Logisim files.
- Bug fix: Wires did not properly merge when a wire was moved or removed using the Select
- Bug fix: Multi-bit constant values were improperly saved (as decimal rather than hex).
- Bug fix: Undoing the deletion of items using the Select Tool did not work.
- Feature: Clicking a component with the Poke Tool or the Select tool also shows the
attributes for that component.
- Feature: Clicking a wire with the Poke Tool shows that wire's current value.
- Feature: The attributes for a subcircuit include the subcircuit's name.
- Minor feature: The wiring tool now shows a ghost.
- Minor feature: The color associated with a ``1'' is not quite so irritatingly bright.
Version 2.0 Beta 2 (18 Apr 2005)
- Feature: Added Clear, Load, and Save options to the RAM
- Bug fix: Select tool did not permit moving text components
up or to the left.
Version 2.0 Beta 1 (11 Apr 2005)
This is a complete rewrite from scratch, more than doubling
the size of the program. The list of notable new features is too
long to include on this page.