mirror of
https://github.com/Noratrieb/crapderive.git
synced 2026-01-14 16:45:08 +01:00
reading
This commit is contained in:
parent
7d120f7b5e
commit
72fbc4e55a
3 changed files with 17 additions and 4 deletions
|
|
@ -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!"),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue