2023-04-28 12:18:07 +02:00
|
|
|
use dekejit::cpu::IOBuffer;
|
|
|
|
use dekejit::cpu::CPU;
|
|
|
|
use dekejit::loader::unloader::*;
|
|
|
|
|
2022-12-29 01:15:59 +01:00
|
|
|
fn main() {
|
2023-04-28 12:18:07 +02:00
|
|
|
let mut k = make_string("Hello world!");
|
|
|
|
|
|
|
|
let mut code: Vec<u16> = vec![
|
|
|
|
0b0111000100000011, // addi ra 3
|
|
|
|
0b1110000100000011, // ecall ra 3
|
|
|
|
0b1111000000000000, // HALT.
|
|
|
|
];
|
|
|
|
|
|
|
|
code.append(&mut k);
|
|
|
|
|
|
|
|
let mut env = IOBuffer::default();
|
|
|
|
|
|
|
|
let mut cpu = CPU::new(&mut env);
|
|
|
|
|
|
|
|
for c in &code[..] {
|
|
|
|
println!("{:#018b}", c);
|
|
|
|
}
|
|
|
|
|
|
|
|
match cpu.run_code_raw(&code) {
|
|
|
|
Ok(_) => {
|
|
|
|
println!("Result: {}", env.output)
|
|
|
|
}
|
|
|
|
Err(e) => println!("Err: {:?}", e),
|
|
|
|
};
|
2022-12-29 01:15:59 +01:00
|
|
|
}
|