Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/frost64-dev/frost64
Custom 64-bit Architecture
https://github.com/frost64-dev/frost64
assembler emulator
Last synced: 8 days ago
JSON representation
Custom 64-bit Architecture
- Host: GitHub
- URL: https://github.com/frost64-dev/frost64
- Owner: Frost64-dev
- License: gpl-3.0
- Created: 2024-07-14T10:36:29.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-10-27T10:52:14.000Z (10 days ago)
- Last Synced: 2024-10-27T11:44:54.936Z (10 days ago)
- Topics: assembler, emulator
- Language: C++
- Homepage:
- Size: 262 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Frost64 - A Custom 64-bit 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 install` to build and install to the src directory. The binaries will be in the `bin` directory in the src directory.## Running the Assembler
- In the source directory, run `./bin/Assembler < -p path/to/assembly > < -o path/to/binary >` to assemble the assembly file.
## Running the Emulator
- In the source directory, run `./bin/Emulator < -p path/to/binary > [ -m RAM size ]` to run the emulator.
- The RAM size is optional and defaults to 1 MiB.## Notes
- The assembler and emulator are still in development and may not work as expected. Please report any issues you find.