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}