This software has been mainly developed while I was studying "Computer Architecture and Operating Systems" at the university.
The alu is a component I find fascinating. Its design is ingenious, and the way it has changed computers is incredible.
I found on YouTube a video made by "CrashCourse - The Mechanics of How Computers Work",
which introduced the chip TTL74181 as the first ALU implemented as an integrated circuit.
From here, I started looking for datasheets on the TTL74181 and looking for manuals.
This software is an emulator and the result of the study that I conducted for pure fun on this component so interesting.
The following software includes:
- Arithmetic and logic mode emulation
- Multi-ALU support (x2, x4, x8)
- Function table with all opcodes and their description
- Command prompt to execute manually each operation
- Output window with many details
- Multi-layer mode which highlights the most important logic gates
- Documentation view inside the software (yep, it's true)
- Log window (So you can export the calculation eventually...)
In this example, the ALU is doing a simple sum (A + B = F) where A = 9 and B = 17
TTL74181 requires Gradle 6.4.1, JDK 11 and JavaFX 11.
The generated JARs is compatible only with Java 11 and higher.
Each platform requires different dependencies, so by default,
the target platform is Windows.
In order to build a jar for a different platform,
you have to rename the variable 'targetPlatform' inside build.gradle to one of the following values:
- win
- mac
- linux
Build command:
gradle clean jar
The build / libs directory with the JAR will be available at the root directory. If you have chosen the correct profile you will find inside the target directory one fat jar with JavaFX dependencies included:
- TTL74181 - (platform_name).jar (with dependencies included)
You can get the latest precompiled .jar files (Win, Mac & Linux) from this page. The JavaFX dependencies are included inside the .jar file, you only need the JRE.
To run, simply execute:
java -jar <filename>
The full changelog and planned features are available at CHANGELOG.md,
meanwhile the following table is a really short feature-list for each
release.
Version | Changelog |
---|---|
0.1 | Initial release |
If there's anything you'd like to chat about, or
you want to send me feedback about this project,
you can reach me on my e-mail,
feature requests are always welcome.
Copyright (C) 2020 Giuseppe Baittiner
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.