From f611177a667b493c2a2484a9dbd872e9c43ec11c Mon Sep 17 00:00:00 2001 From: Anachronaut <75824887+RealBusinessAccount@users.noreply.github.com> Date: Wed, 16 Oct 2024 23:11:08 -0400 Subject: [PATCH] Create README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ed4406c --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# SplitBit Emulator + +## Overview: +SplitBit is a custom CPU designed for hobbyist projects and experimentation. The SplitBit Emulator is an emulator a C implementation of its bespoke instruction set architecture. It allows users to load and run binary programs created for the SplitBit CPU interactively from the command line. + +### Features: +- 8-bit Harvard Architecture: The system memory is separated into two 64k banks, one for the Program Memory and another for the Data Memory. +- Custom ISA: A fully implemented instruction set architecture optimized for simplicity and easy assembly programming. +- Debug Mode: Single-step through instructions and monitor the CPU's registers as they change through each cycle. +- CLI Based: Debug messages and CPU input and output are supported through the command line. +- Binary File Support: Load programs and data from binary files. +- Modular Codebase: Mostly clean separation of CPU, I/O, and utility functions for easy modification. + +### Installation: +1) Clone the repository: +``` +git clone https://github.com/RealBusinessAccount/SplitBit-Emulator.git +cd SplitBit-Emulator +``` +2) Build the Emulator: You'll need gcc and make or similar. +``` +make +``` +3) Run the emulator: +``` +./SplitBit hello.bin +``` + +### Usage: +``` +./SplitBit [options] [binary file] +``` +#### Options: +- -d, --debug: Enable debug mode to single step through cycles. +- -h, --help: Show help and usage information. + +### Additional Info: +For more information on the custom ISA and programming for SplitBit, see the Programming Manual. + +### License: +This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).