Skip to content

ErolGelbul/low_level_graph_calculator

Repository files navigation

Graphing Calculator

Please check out my blog post for an in-depth explanation on the project. Where I talk about:

  • The Circuit
  • Assembly Program
  • Code Design
  • Testing Strategies
  • Extra Features

(back to top)

Built With

I have used 2 programs to build the software and the hardware. The first software is a free educational tool that allows programmers to design and simulate digital logic circuits. The second program, CocoIDE is made by Stephen Hunt and Alex Shafarenko. If you would like to use their program, you will need their permission since I cannot provide it on behalf of them.

(back to top)

Getting Started

Before downloading the project files, you need to make sure you have the following installed. For CocoIDE you need python3. Addtionally, you need Java 5 or above for Logisim.

How to install Python 3

Links:

How to install:

  • Debian/Ubuntu
    1. Install using apt-get.
      $ sudo apt-get update
      $ sudo apt-get install python3
  • macOS
    1. Install Brew.
    2. Install Python using Brew.
      $ brew install python3
  • Windows
    1. Download Python from the Windows Download page.
    2. Run the installer.
      • Be sure to check the box to have Python added to your PATH if the installer offers such an option (it's normally off by default).

For more details, see this gist - Set up a Python 3 virtual environment.

How to install Default JRE/JDK

  • Debian/Ubuntu The easiest option for installing Java is using the version packaged with Ubuntu. Specifically, this will install OpenJDK 8, the latest and recommended version.

First, update the package index.

Next, install Java. Specifically, this command will install the Java Runtime Environment (JRE).

    * sudo apt-get install default-jre
  • Windows

    1. Download Java from the Windows Download page.
    2. Run the installer.
  • macOS People on the Stackoverflow cautioned not to install 8 until 7 is installed. So we are going to install JDK 7 first.

Unlike other version managers such as NVM, jEnv itself doesn’t install JDKs. You have to do it yourself. Luckily, Homebrew Cask made this task really easy. But before doing that, let’s check if we already have JDK 7 installed by Homebrew Cask:

brew tap caskroom/versions
brew cask info java7

Setting up Logisim

Download Logisim. Follow the instructions on the page. Run the installer.

  1. Install/fork project files.
  2. Run the Logisim program.
  3. Go to File.
  4. Click on Open.
  5. Select the project file name: Graph Calculator Code.asm
  6. Software will ask for a library named cdm-8, it is also provided with the project files. Add the library to the program on the dialog box that pops up.
  7. If the dialog box does not open, go to Project, then click on Load Library and upload the cdm-8 library manually.
  8. Manually change the coefficient values by pushing the buttons above the graph.
  9. From Simulate, increase the Tick Frequency to 4.1 KHz.
  10. CTRL+K to enable ticks.

(back to top)

Setting up CocoIDE

If you were able to get your hands on CocoIDE:

  1. Install/fork project files.
  2. Run CocoIDE using python3.
  3. Go to Open.
  4. Select the project file name: Graph Calculator Mark 4.circ
  5. Press Compile Reset
  6. Drag the slider towards Step to analyse each execution, memory and the registers.

(back to top)

Contributing

If you would like to add any extra features to the Logisim simulation, feel free to fork and create a pull request. Thank you!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

Erol Gelbul - Website - erolgelbul@gmail.com

Project Link: Graphing Calculator

(back to top)

Acknowledgments

Many thanks to Alex Shafarenko and Stephen Hunt. They are remarkable for creating a brilliant low level IDE for real-time program code analysis. Everything I know about assembly, they taught me.

(back to top)

About

Graphing calculator literally made from scratch!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published