Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cwielder/coldcpu
Custom processor architecture, assembly language, and toolchain.
https://github.com/cwielder/coldcpu
assembler assembly compiler cpp cpu emulation premake processor-architecture
Last synced: 21 days ago
JSON representation
Custom processor architecture, assembly language, and toolchain.
- Host: GitHub
- URL: https://github.com/cwielder/coldcpu
- Owner: cwielder
- License: mit
- Created: 2024-08-23T07:09:09.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-01-11T21:46:16.000Z (about 1 month ago)
- Last Synced: 2025-01-11T22:30:24.310Z (about 1 month ago)
- Topics: assembler, assembly, compiler, cpp, cpu, emulation, premake, processor-architecture
- Language: C++
- Homepage:
- Size: 826 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
![]()
# ❄️ Overview
**ColdCPU** is a custom-made fictional processor architecture and assembly language written in C++. It offers a comprehensive toolchain for compiling, cross-platform emulation, and disassembly.# 🚀 Features
* Turing Completeness: Supports arithmetic, floating-point and bitwise operations.
* Control Flow: Conditional branching for complex program logic.
* Memory Operations: Secure memory model with fast load/store instructions.
* Clean & Simple: ColdCPU provides an educational reference designed to explore low-level architecture concepts and enhance understanding of basic processor functionality.
* Examples: Several examples of programs written in the `cold` assembly language have been provided in the [workdir](https://github.com/cwielder/coldcpu/tree/main/workdir) folder of this repository.# 📚 Usage
## Assembler
```
Usage: coldasm --input PATH --output PATH
```## Emulator
```
Usage: coldemu --path PATH [--memory VAR]Optional arguments:
-m, --memory memory size in bytes [default: 1024]
```## Disassembler
```
Usage: colddsm --input PATH --output PATH
```### See the documentation for more detailed information about the processor and toolchain in the [wiki](https://github.com/cwielder/coldcpu/wiki).
# 🔨 Building
This project is built upon the [Premake5](https://premake.github.io/) metabuild system, meaning that it can compile using native build systems depending on the host. Currently, Windows and Linux are supported, and build systems for Visual Studio and GNU Make can be generated for each respectively by running the corresponding setup script found in the `scripts` directory at the root of the repository.## Steps
* Clone the repository:
```
git clone https://github.com/cwielder/coldcpu.git
cd coldcpu
```
* Generate build files:
* Windows (Visual Studio):
```
"./scripts/setupVS.bat"
```
Open the resulting `coldcpu.sln` file in Visual Studio 2022+
* Linux (GNU Make):
```
"./scripts/setupMake"
make
```
# 📃 License
All code in the `coldcpu` repository has been made available under the [MIT License](https://github.com/cwielder/coldcpu/blob/main/LICENSE.txt).