Implement ADD and JUMP instructions

This commit is contained in:
2023-12-03 00:09:44 +01:00
parent 2547f7030d
commit ebecd4e763
10 changed files with 171 additions and 126 deletions

32
pim-os/src/pim/state.rs Normal file
View File

@@ -0,0 +1,32 @@
use super::config::PimWriter;
use pim_isa::{BankMode, Kernel, PimConfig};
#[derive(Debug)]
pub struct PimState {
kernel: Kernel,
bank_mode: BankMode,
writer: PimWriter,
}
impl PimState {
pub fn new(kernel: &Kernel) -> Self {
Self {
kernel: kernel.clone(),
bank_mode: BankMode::SingleBank,
writer: PimWriter,
}
}
// TODO return token and return to singlebank when dropped
pub fn set_bank_mode(&mut self, bank_mode: BankMode) {
self.bank_mode = bank_mode;
self.writer.write(
serde_json_core::to_string::<PimConfig, 1024>(&PimConfig {
kernel: self.kernel.clone(),
bank_mode: self.bank_mode,
})
.unwrap()
.as_str(),
);
}
}