gb/src/high_ram.rs

28 lines
590 B
Rust
Raw Normal View History

use crate::bus::BusIo;
const HIGH_RAM_SIZE: usize = 0x7F;
const HIGH_RAM_START_ADDRESS: usize = 0xFF80;
2021-01-18 03:13:59 +00:00
#[derive(Debug, Clone)]
pub(crate) struct HighRam {
buf: Box<[u8; HIGH_RAM_SIZE]>,
2021-01-18 03:13:59 +00:00
}
2021-03-16 06:05:13 +00:00
impl Default for HighRam {
2021-01-18 03:13:59 +00:00
fn default() -> Self {
Self {
buf: Box::new([0u8; HIGH_RAM_SIZE]),
2021-01-18 03:13:59 +00:00
}
}
}
impl BusIo for HighRam {
fn write_byte(&mut self, addr: u16, byte: u8) {
self.buf[addr as usize - HIGH_RAM_START_ADDRESS] = byte;
2021-01-18 03:13:59 +00:00
}
fn read_byte(&self, addr: u16) -> u8 {
self.buf[addr as usize - HIGH_RAM_START_ADDRESS]
2021-01-18 03:13:59 +00:00
}
}