pub trait ApuRegisters {
// Required methods
fn write_ctrl(&mut self, channel: Channel, val: u8);
fn write_sweep(&mut self, channel: Channel, val: u8);
fn write_timer_lo(&mut self, channel: Channel, val: u8);
fn write_timer_hi(&mut self, channel: Channel, val: u8);
fn write_linear_counter(&mut self, channel: Channel, val: u8);
fn write_length(&mut self, channel: Channel, val: u8);
fn write_output(&mut self, channel: Channel, val: u8);
fn write_addr_load(&mut self, channel: Channel, val: u8);
fn read_status(&mut self) -> u8;
fn peek_status(&self) -> u8;
fn write_status(&mut self, val: u8);
fn write_frame_counter(&mut self, val: u8);
}