This commit is contained in:
nora 2022-06-27 12:14:42 +02:00
parent 7d120f7b5e
commit 72fbc4e55a
3 changed files with 17 additions and 4 deletions

View file

@ -9,7 +9,7 @@
//! Decimal 1
//! ```
use std::io::Write;
use std::io::{Read, Write};
use logos::Span;
@ -113,6 +113,13 @@ impl InterpretCtx {
let is_ok = std::io::stdout().lock().write_all(slice).is_ok();
*self.reg_mut(Register(0)) = if is_ok { 0 } else { 1 };
}
2 => {
let buffer_addr = self.reg_addr(Register(0));
let buffer_len = self.reg_addr(Register(1));
let slice = &mut self.memory[buffer_addr..][..buffer_len];
let is_ok = std::io::stdin().read_exact(slice).is_ok();
*self.reg_mut(Register(0)) = if is_ok { 0 } else { 1 };
}
_ => panic!("invalid interrupt!"),
}
}