sam-astro / Astro8-Computer

Custom 16-bit homebrew CPU, emulator, renderer, circuit, and language
MIT License
754 stars 82 forks source link
assembler assembly assembly-language compiled-language computer computer-architecture cpp cpu emulator

Badge License   Button Discord


The Astro-8 is a 16-bit computer design. It has a (almost) working Logisim Evolution circuit, along with an emulator on Windows, Mac, and Linux, for running code at full speed. There is an assembly language, along with a higher level language called Armstrong, plus more which are actively being built by the community.

I created a video about the creation of this and how it works, which you can view here:

Button Video

Demos

There are some demos for the Astro-8, such as the pong game and a typing program. You can locate those in the folder /example_armstrong_programs/.

Go here for the documentation and more previews for some other demos

image

Programming

The two most supported ways to program for the computer is using the assembly language or Armstrong.

Documentation

Button Documentation

Installation

Windows

  1. Navigate to the most recent release, and download the Windows version
  2. Unzip the downloaded file

    Linux

  3. Make sure you have SDL2 installed on your system

    For debian based operating systems, you can do this with:

    sudo apt-get install -y libsdl2-2.0-0 libsdl2-mixer-2.0-0
  4. Navigate to the most recent release, and download the Linux version
  5. Unzip the downloaded file

    From Source

  6. Clone this repository in a command line using git clone https://github.com/sam-astro/Astro8-Computer.git OR by downloading the repository as a .ZIP file and unzipping it to your location of choice
  7. Make sure you have SDL2 installed on your system
  8. Enter the directory Astro8-Computer/Astro8-Emulator/linux-build
  9. Run CMake using cmake .. to generate Unix Makefile
  10. Run make -j5 to generate executable
  11. The executable is Astro8-Computer/Astro8-Emulator/linux-build/Astro8-Emulator



Other projects related to the Astro-8:

These projects are not always compatable with the main branch of the official Astro8-Computer repository. Please read the instructions in their project's repo before using.