Skip to content

TTL74181 is a 4-bit ALU emulator based on the original architecture design made by Fairchild Semiconductor

License

Notifications You must be signed in to change notification settings

MrSnix/TTL74181

Repository files navigation

TTL74181 Emulator

Table of Contents

Introduction

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.

Features

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...)

Screen-shots

Window

The main window

Function table

The function table

Commands & logs

In this example, the ALU is doing a simple sum (A + B = F) where A = 9 and B = 17

Command prompt with logs

Multi-layer mode

The multi-layer window

Documentation view

The documentation view

Build, download & changelog

Building the jar

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)

Download

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>

Tracking changes

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

Feedback

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.

License

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.