Juse is a virtual machine which executes bytecode.
It is inspired by projects like :
- Stack machines : cslarsen implementation
- Chip-8 : JamesGriffin implementation or cookerlyk implementation,
- Chip-16 : implementation listed on Github page.
- Other virtual chips : Khepra VM (implementation)
It could be compared to the JVM or the CLR machines.
The instruction space distribution is inspired by the RISC-V architecture.
© 2022 Sébastien GELDREICH
Juse is still in early development.
But you can play with it if you are curious.
- The goal : A multipurpose virtual machine written in modern C++
- The machine has to be easy to understand (variable 8 bits aligned length opcodes with 16 bits opkey),
- The project can be used as a framework to create a custom virtual machine with custom opcodes,
- There are a lot of features todo :
- OpKeys specification is not fixed,
- 2 assemblers languages are planned,
- For now, I stay focused on the C++ code structure : one of the goals of this project is to create a virtual machine which is easy to understand and easy to extend,
This implementation :
Uses only std::
, uint128_t
& SFML (future)
Implemented features :
- The machine is composed of
Cpu
s (withStack
andRegister
s) and theMemory
, Cpu
s can deal with 8, 16, 32 and 64 bits words,- The
Machine
has threadable Cpus (eachCpu
has a fixed frequency from 1 Hz to 1 GHz ; 4 KHz by default), - 117 operations :
std
: branching, moves, threads, allocations,ext_u*
: general registers manipulation (push/pop/read/write/unsigned arithmetic), integers and strings I/O
- Only tested on Windows 11
- Compiled with Visual C++ 2022
License : MIT
© 2022 Sébastien Geldreich