1pub trait BusInterface { 2 const ADDRESS_MASK: u32 = 0xFFFFFF; 3 4 fn read(&mut self, address: u32) -> u8; 5 6 fn write(&mut self, address: u32, value: u8); 7 8 fn idle(&mut self); 9 10 fn nmi(&self) -> bool; 11 12 fn acknowledge_nmi(&mut self); 13 14 fn irq(&self) -> bool; 15 16 fn halt(&self) -> bool; 17 18 fn reset(&self) -> bool; 19}