pub trait Coprocessor {
fn accepted(&self, ins: u32) -> bool;
fn done_loading(&self, ins: u32) -> bool;
fn done_storing(&self, ins: u32) -> bool;
fn get_one_word(&mut self, ins: u32) -> u32;
fn get_two_words(&mut self, ins: u32) -> (u32, u32);
fn get_word_to_store(&mut self, ins: u32) -> u32;
fn internal_operation(&mut self, ins: u32);
fn send_loaded_word(&mut self, word: u32, ins: u32);
fn send_one_word(&mut self, word: u32, ins: u32);
fn send_two_words(&mut self, word1: u32, word2: u32, ins: u32);
}