Atanua is open source, source code available at https://github.com/jarikomppa/atanua
- Atanua win32 1.3.141220 <- DOWNLOAD HERE
- Atanua Linux/x86 1.2.130617 (not based on open source)
- Atanua Linux/x86_64 1.2.130617 (not based on open source)
- Atanua OSX/ppc 1.1.101120 (not based on open source)
- On a modern mac? Try this docker version by David Huculak.
- If you're having issues, update your display drivers first. That has fixed over 90% of issues in the past.
- OSX build is for old ppc macs. 10.4 works, 10.3.9 might work. Old x86 macs should also work through Rosetta. Since Apple no longer supports ppc macs, no new versions of Atanua for it are planned. Rosetta is no longer supported either, so running Atanua on a mac is probably impossible.
- Sales on mac have been so slow that they can't justify investment in an intel mac. If someone donates one, however, there'll be new mac builds.
- Linux port was compiled with clang on ubuntu 12.04LTS - may work for you, or then it might not. Dependencies include GTK3, SDL, maybe other stuff too.
- Win32 known issue: winxp doesn't seem to like handling of .atanua files on the desktop. Any other directory seems fine.
- Velleman k8055 USB experiment board plug-in - mix real-world and virtual components!
2708, 2716 and 2732 1kB, 2kB and 4kB ROM chips
27xx chips are included internally in Atanua now - plug-in still available as an example.
If you make plug-ins for Atanua and wish them to be listed here, toss me an email.
- Bachelor's thesis on Atanua (PDF) - covers usage and plenty of the internals of Atanua
- Final year project presentation slides (PDF) - slides of the brief presentation
- Google+ page.
Older versions / version history
- Open source release.
- Autosave now checks whether the path ends in a trailing slash, and adds one if it's missing.
- Autosave now has interval attribute, so you can set it to save after every N edits, instead of after every edit.
- Dragging a new part from the toolkit with ctrl pressed no longer generates an additional copy.
- Cloning (ctrl-drag) now saves undo state.
- Cloning a box should no longer corrupt memory.
- Cloning a box now retains dragging mode.
- It's now possible to clone boxes with no project file open.
- Optimized loading of complicated boxed designs.
- Optimized wire net rebuilding.
- The combined effect of the above two changes is that one design that took over two minutes to load now loads in under a second.
- Some framework updates, including change to stb_image instead of sdl_image (couple less .dll files needed)
- Save PNG screenshots of the work area via Control-G or "PNG it" button on top bar
- Bright background mode: click on "view" on the top bar to cycle through live/gray wire and black/bright background mores.
- Autosave system, disabled by default; enable by editing atanua.xml
- Bug fixes and speed optimizations
- Huge thanks to Daniel Morrison and Martin Konarik for hunting down bugs in this release!
- Delayed error propagation, combined with some other optimizations, caused (at least) some simple circuits from ever generating error signals. Fixed.
- Thanks to Martin Konarik and Dave Ferguson for various bug reports and testing that lead to this version.
- Various tiny bugfixes that do not actually make any functional difference (via cppcheck).
- A rarely occurring graphics glitch related to font printing fixed.
- Added slight delay to error propagation to avoid situations where circuits with no actual error ping-pong error around. This situation could be worked around in earlier versions by saving and re-loading a design; the error should not happen anymore.
- 7474 should now handle clear and set signals correctly, regardless of clock state
- 74165 would crash if DS pin wasn't connected. Fixed.
- 74181 Cn+4 was missing signal reset; fixed.
- Note: the 74181 a=b pin "wire and" feature is not supported, in this or any previous version.
- 7489 behavior changed so that when chip is not enabled, it will set output pins to high-z state. This should make it possible to chain several memory chips more easily.
- Changed simulation not to run nets or chips unless some related state has changed. This improved performance in a test case by 75%. This is a rather radical change, so some bugs may have been introduced.
- Boxed components no longer show ".atanua" printed on them, and you can pick which side of the box the pin appears by prefixing the pin name with < or >
- Tweaked the "slow LEDs" to be much brighter by default. The brighness ramps up from 0-0.1 and at 0.1 it's already full bright.
- Reimplemented clock system to support higher simulation rates. Default is still 1kHz.
- Added a few new clock chips that are only useful if higher simulation clock rate is in use.
- Bugfix release. Several crash bugs related to boxing and 16 seg displays fixed. Thanks to Martin Konarik!
- UI overhaul; now components in five categories instead of the old three.
- All led-based components altered to be "slow". By default, the brightness of the LEDs depends on the average signal over 40 samples. This means that you can make dim LEDs by pulsing the data on and off, and it also means the LED grids do more than just blink in an annoying manner. The number of samples can be modified in the atanua.xml file.
- New chip: switch, as in a togglable button.(0-9, a-z, like with buttons).
- New chip: 16-seg display. (in various colors and inverted variants).
- New chip: LED grid. (4x4 and 8x8, in various colors and inverted variants).
- New chips: 8-input or, and, nor, nand chips, in ansi and fi variants.
- New buttons: space, enter, shift. Only the left shift works though.
- Bugfix: cancelling chip creation caused infinite loop. Fixed.
- First release that includes all platforms in quite a while.
- Major version update: version number changed to 1.1
- Added boxing. This is a rather complicated code change, so some bugs may be left. Report please!
- Pageup and pagedown can also be used to zoom in and out
- Ctrl-o can be used to see what kind of optimization is done to boxed components
- Merged components are selected after merge
- Several smaller changes related to portability and stability
Atanua win32 1.0.101022
- Added merge function.
Atanua win32 1.0.101021
- New chip: 7489 64-bit Random Access Read/Write Memory
Atanua win32 1.0.100715
- Bugfix: 8051 da a command: Carry flag was set incorrectly in some rare situations.
- Bugfix: 8051 AC flag was calculated incorrectly. (Thanks to Dave Ferguson again)
- Licensing change: educational institutions may now request a free license, but "normal" users require a license.
- Related to licensing change - added nag screens for the trial version
- Several small stability issues in extremely rare use cases fixed (thanks to cppcheck).
- Bugfix: 8051 addc command: if 0ffh was added to 0ffh with carry enabled, carry would be incorrectly cleared.
- Bugfix: 8051 timer0 modes 1 and 2 caused mode 3 to run as well, in practise making these timers run twice as fast.
- In addition to hilighting the current wire segment, the whole net is also hilighted to ease figuring out where each wire (eventually) leads.
- Bugfix: 74141 was not checking strobe pin correctly, and may cause a crash if the strobe pin is not connected before input pins. (Thanks to Dave Ferguson again).
- Notation change: changed inverted signals from SIGNALNAME (inv) to SIGNALNAME#. Example: "Q7 (inv)" -> "Q7#". Some inverted / low-active signals may still be unlabeled.
- Performance optimization: text drawing is now done in a more efficient manner. Several options have been added to atanua.xml regarding this:
- CacheKeys: number of strings cached. Higher values use more memory, lower values may cause performance degration.
- VBO: Enable use of vertex buffer objects. In testing no real gain was found, so disabled by default.
- SafeMode: fallback to the old text drawing system, in case the new system has issues.
- Performance options: atanua.xml now has a PerformanceOptions tag, where it is possible to disable blending and antialiased lines. The result should be more efficient in old hardware, but it is also rather ugly.
- Bugfix: 74LS74 was updating on falling edge, and not rising as per spec. Thanks to Dave Ferguson for pointing this out.
- Bugfix: Logical SR-latches pulsed 'invalid' signal to the net on startup, wreaking havoc on any possible feedback loops. Fixed by making it legal (but pointless) to feed 'high' signal to both inputs. Similar checks on other logical SR-alikes were also removed for consistency.
- Bugfix: Version 1.0.080920 may crash due to the toolkit tooltips. Workaround: drag new components directly from toolkit to the work area - don't let go of the item before the component appears. Fixed in this version.
- The gray component preview now shows the approximate size of the new component.
- Clicking again on the toolkit while creating a new component now cancels the creation of the new component.
- Switching between toolkit modes while creating a new component now cancels the creation of the new component.
- Plug-in interface updates
- Rendering with OpenGL from a plug-in made easier
- Rendering translated to the middle of the chip before render call
- Texture (if any) pre-bound before render call
- Asynchronous call interface added
- Call to ok/cancel dialog
- Calls to file open and file save dialogs.
These return 'c' FILE pointers, so they may not be very usable for non-C native dlls
- Call to save the undo state
- Due to these changes, DLLs made with the new plug-in interface header will not be compatible with older versions.
- Rendering with OpenGL from a plug-in made easier
- New chips: 2708, 2716, 2732 EPROM chips (1kB, 2kB, 4kB), earlier available as a plug-in, now internal implementation.
- New chip: 309, numeric display with logic, modelled after TIL309
- Added ideal unipolar and bipolar stepper motors.
- Mac OS X: more "native" keyboard shortcuts added
- New chip: 74192 (Synchronous up/down decade counter) - some border cases may act differently from hardware; not well-defined in data sheet.
- New chip: 74193 (Synchronous up/down binary counter) - some border cases may act differently from hardware; not well-defined in data sheet.
- New chip: 74165 (Parallel-Load 8-Bit Shift Register)
- 74164 had 4 pins in wrong order (E,F,G,H were reversed)
- Added tooltips to the toolbox - now figuring out which chip is which is slightly easier :-)
- License feature added.
- Audio only enabled if the audio chip is in use.
- Added audio chip
- Changed version number to 1.0 as there haven't been too many requests lately.
- Added button to toggle between live and grey wires. May help when taking screenshots for reports etc.
- Button components now also send a signal if they're clicked.
- Logic probe line opacity changed to 100% - clarity above aesthetics.
- Version strings now also have platform information.
- OSX change: Thanks to Martin Storsjö, dialogs done with cocoa instead of carbon, default file extension set
- Linux change: dialogs tuned a bit, save dialog has default filename set to last used
- OSX and Linux ports, along with several small portability changes/fixes. Control-D now also works as delete.
- 2pt labels added due to user request
- Plug-in DLL interface for custom chips without having to recompile Atanua
- Perfection through imperfection: Introduced a (approximately) 1% error in circuits running at 500Hz. This solves the racing conditions with cross-connected NAND or NOR gates, as found in all latches and flip-flops.
- New chip: 74154
- Large designs would have the coordinates of the items messed up. Fixed by giving 8 bits more precision to the coordinates - in the old version the maximum working design size was around 13 background grid lines. The new limit is around 327 background grid lines. For perspective, the whole background grid has 20 lines. Thanks to andrew77 for spotting this.
- In rare cases one selected chip would be added to multiselect list twice, causing strange things to happen. Fixed.
- Toned down the LED glow a bit
- Pressing ALT will color non-connected input pins red.
- 74138 enable pins were working incorrectly, G2A=1, G2B=G1=0; should have been G2A=G2B=0, G1=1. Fixed.
Thanks for polakko on atanua forums for finding this!
- Undo was broken. Fixed
- Doing undo, file load, or certain other functions with chips selected / multiselected may have caused crashes. Fixed.
- Re-done many of the tests so that they should be much clearer on what they test. Also, all old binary save files are now gone.
Atanua 0.7.080209 (undo broken!)
- Control-R can be used to rotate the currently active chip in 90' steps
- Cloning now also clones contents (label texts and 2051 code memory)
- Initial zoom factor changed into a zoom level that makes sense for editing
- Dragging in a new chip, cloning a chip, or splitting a wire while multiselect was active caused odd behavior. Fixed by clearing multiselect in all of these cases.
- Due to popular demand: 3-input and, or, nand and nor logic blocks added
- Mouse wheel now scrolls the toolkit.
- Snap on/off button now shows current state instead of command, i.e. "Snap (on)" means that snap is on.
- Ctrl-dragging items now clones them.
- Deleting an object (or wire) with tooltip active caused a crash. Fixed.
- Click with shift to pick single objects
- Drag a rectangle with shift pressed to select an area
- To un-select, click somewhere without shift.
- Selected objects can be deleted or dragged around. Cloning is not supported as of yet.
- Option in config file can be used to switch shift and ctrl functionality in clone and select.
- Tooltip mania: every single chip and pin now has a tooltip attached to it.
- New chip: 2051 (a 20-pin 8051 variant) based on my 8051 simulator
- Major logic change: invalid state is now propagated. That is, if you feed 'invalid' signal to a chip, it will generate 'invalid' signal out. The old behavior (i.e. invalid input generating highz state) can be enabled by changing the option PropagateInvalidState to 0 in the configuration file. Due to the severity of this change it's possible that this introduced some bugs.
- I believe 7447 BI/RBO pin functionality is now fixed.
- New program icon
- Added some custom, context-sensitive mouse cursors. These can be disabled in the config file.
- Toolkit slider now works more like people might expect it to, for good or bad. This one can't be disabled in the config file. =)
- If user clicked on an item, released, and then click-dragged item from the toolkit, the work area would move a bit when the item was created. Fixed.
- Newly created items now get keyboard focus.
- Labels can now span several lines (i.e. accept enter) Still can't, and probably won't, support cursor movement.
- Added atanua.xml, user-editable config file with several options.
- Made toolkit 15 pixels wider by default.
- Crash at startup in some configurations fixed.
- Using 7420 caused crash; fixed.
Atanua 0.6.080203 (Known to crash at startup in some configurations)
- New chips: 74181 (some signals may be inverted), 74240, 74241, 74244, 74245
- Inverted (low-active) LEDs added
- New/load/save button order changed
- Wires now use anti-aliased lines with variable thickness depending on the zoom factor. Probably have to make a config file to control these kinds of features vs. performance.
- Windows open-with system should now work (as well as giving atanua filename to open, same thing in practise)
- Wire tooltip for invalid state re-labeled
- Homework validation system added
- Deleting connection pins with only two wires will now join the two lines (as if they were never split). Pins with more (or less) than two wires are deleted as before.
- Wires are now "fried" when a chip is deleted
- connecting wires are deleted recursively if connected to non-complicated connection pins.
- Known bug: using 7420 causes crash; fixed in next version.
- Exe name is now Atanua.exe instead of sdlgl.exe.
- New chip: 74191
- Background grid dimmed.
- Tweaked pin visibility a bit more.
- Snap is on by default.
- New chips: 7485, 7490, 74283
- 500Hz clock was broken, fixed.
- If a wire is being picked on top of a chip, the chip does not get selected as well.
- Added visual cue to wire splitting.
- Wire split distance was calculated from wrong offset, fixed.
- Tooltip delay reduced from 2000ms to 1500ms
- Making a new wire connection through drag-drop did not work if drawing was started from failed wire-split test. (I love this
- obscure bug nobody will probably notice that required fair amount of code to fix)
- Connection pin draggable area is now only visible when mouse is over it
- reduces screen clutter. Non-focused chip pins are also smaller.
- Enabled another way to drop new chips: user may also click on chip list, release, move to the work area, and click again.
- New chips: 7473, 7474, 74195, 74151, 74574
- New flipflops: JK, D, T, SR
- New 2-bit MUX block, 3-bit DX-block
- Clocks now run at the actual rate, not half
- i.e. 1Hz clock does the whole 0-1-0 cycle 1 once per second.
- Redrawn all logic symbols
- File name now shows up in title, and is offered on the next save/load operation as default.
- New chips: 74163, 74139, 7464, 7447 (BI/RBO not fully simulated)
- Added a logic probe of sorts. Found at the end of the I/O chips list. Give the probe keyboard focus (i.e. click on it) and press space to pause recording.
- Snap is no longer unstable, and may actually be useful =).
- Save file format changed from binary to XML. Atanua still loads old binary files, but saves in the new "almost human readable" XML format.
- Window is now resizeable
- Wire splitting has a tolerance value now
- dragging from close to a pin won't split the wire anymore. Tolerance value is currently at 20% from both ends.
- Labels in four sizes (5pt for headlines, 3pt for blocks, 1pt for chips, 0.1pt for pins). These can be found at the end of the 'Base' tab.
- Clocks are now synchronized.
- New chips: 7410, 7420, 74138
- nc state is considered 'high'
- Flakiness in wiring fixed
- both dragging wires (releasing on target pad) and two-click wiring works
- Added possibility to split wires with extra connection pins
- simply drag in the middle of a wire
- New chips: 7404, 7408, 7432, 7486.
- Added bunch of save files, testing basically for all of the chips.
- Rewrote physics iteration code, now fixed at 1000 physics iterations per second; if simulation gets too heavy, attempts to keep framerate "tolerable", causing physics not to be real-time.
- Fixes in 7400 and several latches
- Added 7402
- Added multi-level undo/redo
- Tweaked pin/wire selection, non-hot pins are less visible
- Fixed 7seg display pin position, added inverted 7seg displays, and the first 74-chip, the 7400
- 7-seg displays, 'magneta' -> 'magenta' typo fixed.
- Initial release
Site design © 2013 Jari Komppa