Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frosty515/custom-arch
Custom 64-bit Architecture
https://github.com/frosty515/custom-arch
assembler emulator
Last synced: 2 months ago
JSON representation
Custom 64-bit Architecture
- Host: GitHub
- URL: https://github.com/frosty515/custom-arch
- Owner: Frosty515
- License: gpl-3.0
- Created: 2024-07-14T10:36:29.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-09-25T04:04:08.000Z (3 months ago)
- Last Synced: 2024-09-30T05:45:20.113Z (3 months ago)
- Topics: assembler, emulator
- Language: C++
- Homepage:
- Size: 176 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Custom Architecture
## COPYING
Copyright (©) 2024 Frosty515
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.You should have received a copy of the GNU General Public License
along with this program. If not, see .## Design
- 64-bit architecture
- Full design can be found in [docs/design.md](docs/design.md)
- Design of some internal aspects can be found in [docs/internals.md](docs/internals.md)## Pre-requisites
### Requirements
- CMake
- Ninja
- A C/C++ compiler that supports C23 and C++23### Linux (GNU C/C++)
#### Debian
- run `sudo apt update && sudo apt install build-essential cmake ninja-build` to install dependencies
#### Fedora/RHEL
- run `sudo dnf install gcc gcc-c++ cmake ninja-build` to install dependencies
#### Arch
- run `sudo pacman -Syu base-devel cmake ninja` to install dependencies
#### Gentoo
- run `sudo emerge --ask --verbose sys-devel/gcc sys-devel/binutils dev-build/cmake dev-build/ninja` to install dependencies
---
## Building
1. run `mkdir build && cd build` to create a build directory and enter it
2. run `cmake -GNinja ..` to generate the build files. `-DBUILD_CONFIG=` can be added to the cmake command to specify the build type. `` can be `Debug` or `Release`. It defaults to `Release`. `-DBUILD_ARCHITECTURE=` can be added to the cmake command to specify the architecture. Currently, the only supported architecture is `x86_64`. It defaults to `x86_64`.
3. run `ninja` to build## Running the Assembler
- In the build directory, run `./Assembler/Assembler ` to assemble the assembly file
## Running the Emulator
- In the build directory, run `./Emulator/Emulator ` to run the emulator
## Notes
- The assembler and emulator are still in development and may not work as expected.