10 releases (5 breaking)
0.6.1 | Oct 28, 2022 |
---|---|
0.6.0 | Sep 1, 2022 |
0.5.0 | Aug 17, 2022 |
0.4.0 | Jan 25, 2022 |
0.1.1 | Jul 9, 2021 |
#169 in Emulators
Used in 4 crates
57KB
886 lines
GPCAS isa crate
This crate provides an interface to implement for ISAs (instruction set architectures) to be supported in GPCAS. GPCAS stands for General Purpose Core Architecture Simulator, a simulator for CPUs.
Each ISA has to provide an emulator capable of executing a program of said ISA, and some additional properties.
Example
To properly interface with the simulator, an ISA should provide its information as so:
extern crate gpcas_isa;
use gpcas_isa::{Isa, MemoryAccessType};
pub fn get_isa(executable_data: Vec<u8>) -> Isa {
Isa {
emulator: Box::new(YourEmulator::new(executable_data)),
memory_access_type: MemoryAccessType::LoadStore,
general_purpose_register_count: 16,
vector_register_count: 0,
special_register_count: 0,
instruction_word_alignment: 1,
max_instruction_len: 2,
}
}
License
gpcas_isa
is distributed under the LGPLv3 license. See COPYING
and COPYING.LESSER
in the crate root.