36 lines
810 B
Rust
36 lines
810 B
Rust
#[derive(Default, Debug)]
|
|
pub struct Serial {
|
|
data: u8,
|
|
control: u8,
|
|
}
|
|
|
|
impl Serial {
|
|
pub fn new() -> Serial {
|
|
Serial::default()
|
|
}
|
|
|
|
pub fn write_byte(&mut self, addr: u16, val: u8) {
|
|
match addr {
|
|
0xFF01 => {
|
|
// println!("Serial: Write {:02X}", val);
|
|
self.data = val;
|
|
}
|
|
0xFF02 => self.control = val,
|
|
_ => panic!("Serial: Write {:02X} to {:04X} unsupported", val, addr),
|
|
}
|
|
}
|
|
|
|
pub fn read_byte(&self, addr: u16) -> u8 {
|
|
match addr {
|
|
0xFF01 => self.data,
|
|
0xFF02 => self.control,
|
|
_ => panic!("Serial: Read from {:04X} unsupported", addr),
|
|
}
|
|
}
|
|
|
|
pub fn serial_interrupt(&self) -> bool {
|
|
// TODO
|
|
false
|
|
}
|
|
}
|