CPU emulator for teaching machine-level coding concepts.
Most of the text below is just a AI-generated placeholder. It will be updated soon™.
Welcome to c3pu, a lightweight, simulated computer environment designed to mimic basic computer operations. Our simulator, named for its playful resemblance to a certain talkative robot from a certain movie franshise, offers a simple interface to understand the core concepts of computing, including memory management, register operations, and basic data processing.
- Simulated CPU with basic registers.
- Limited memory space for efficient operation learning.
- Interactive program counter to track processing steps.
- User-friendly interface for educational purposes.
c3pu is written in Java and does not require any installation. It comes as a single runnable jar file, meaning that on many systems you can simply double-click it to run. If that does not work, run it from a terminal, like this:
cd directory/where/you/downloaded/the/jar/file
java -jar c3pu.jar
Optionally, you can instead clone this repository and build the project yourself. To do this, start by cloning this project:
git clone git@github.com:lunduniversity/introprog-cpu-emulator.git
cd c3pu
Then build the project by executing the Gradle build script, like this (it is not required to install Gradle):
# on unix-based operating systems (Unix, Linux, MacOS)
./gradlew build
# on Windows
gradlew.bat build
Here's a quick guide on how to use c3pu:
- Start the simulator.
- Load your sample program or use the predefined examples.
- Execute and observe the behavior of the simulated CPU and memory.
// Code examples can be provided here
Contributions to c3pu are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests to us.
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.
Mention any inspirations, code snippets, etc. Remember to replace placeholders like git@git.cs.lth.se:courses/dod/c3pu.git and the license information with your specific details. Also, you can add or modify sections as your project evolves!