diff --git a/src/emu/cpu.rs b/src/emu/cpu.rs index e0b002e..b4e2490 100644 --- a/src/emu/cpu.rs +++ b/src/emu/cpu.rs @@ -1,6 +1,5 @@ use crate::emu::graphics::GraphicsProcessor; -use crate::emu::mmu::{ Memory}; -use crate::emu::ram::RamMemory; +use crate::emu::memory::{Memory, RamMemory}; use crate::misc::endian::{read_big_endian_u24, write_big_endian_u24}; use crate::misc::result::EmulatorResult; diff --git a/src/emu/graphics.rs b/src/emu/graphics.rs index 7090532..a63cf2b 100644 --- a/src/emu/graphics.rs +++ b/src/emu/graphics.rs @@ -1,6 +1,6 @@ use std::cell::{Ref, RefCell}; -use crate::emu::mmu::Memory; -use crate::emu::ram::RamMemory; +use crate::emu::memory::Memory; +use crate::emu::memory::RamMemory; use crate::misc::emulator_error::DeviceType::GRAPHICS; use crate::misc::emulator_error::EmulatorError; use crate::misc::result::EmulatorResult; diff --git a/src/emu/ram.rs b/src/emu/memory.rs similarity index 89% rename from src/emu/ram.rs rename to src/emu/memory.rs index 9d8edee..a289828 100644 --- a/src/emu/ram.rs +++ b/src/emu/memory.rs @@ -1,14 +1,20 @@ use std::cell::RefCell; -use crate::emu::mmu::Memory; use crate::misc::emulator_error::DeviceType::RAM; use crate::misc::emulator_error::EmulatorError; use crate::misc::endian::read_big_endian_u24; use crate::misc::result::EmulatorResult; -const MAPPED_MEMORY_NOT_REQUIRED: u8 = 8; - pub const MEM_LENGTH: usize = 2 << 23; + +/// mapped I/O + RAM. +pub trait Memory { + /// Get the value (24bit) at the address(24bit) + fn try_get_byte(&self, address: u32) -> EmulatorResult; + /// Set the value at the 24bit address + fn try_set_byte(&self, address: u32, value: u8) -> EmulatorResult<()>; +} + #[derive(Clone, Debug)] pub struct RamMemory { pub data: RefCell>, @@ -54,8 +60,6 @@ impl RamMemory { } - - impl Memory for RamMemory { fn try_get_byte(&self, address: u32) -> EmulatorResult { log::trace!("Fetch RAM memory at address {}",address); @@ -79,8 +83,8 @@ impl Memory for RamMemory { #[cfg(test)] mod tests{ - use crate::emu::ram::RamMemory; - use crate::emu::mmu::Memory; + use crate::emu::memory::RamMemory; + use crate::emu::memory::Memory; const EXAMPLE_ADDRESS:u32=0x24; #[test] @@ -98,4 +102,6 @@ mod tests{ assert_eq!(0,byte_before); assert_eq!(EXAMPLE_DATA,byte_after); } -} \ No newline at end of file +} + + diff --git a/src/emu/mmu.rs b/src/emu/mmu.rs deleted file mode 100644 index 8a71bd5..0000000 --- a/src/emu/mmu.rs +++ /dev/null @@ -1,11 +0,0 @@ -use crate::misc::result::EmulatorResult; - -/// mapped I/O + RAM. -pub trait Memory { - /// Get the value (24bit) at the address(24bit) - fn try_get_byte(&self, address: u32) -> EmulatorResult; - /// Set the value at the 24bit address - fn try_set_byte(&self, address: u32, value: u8) -> EmulatorResult<()>; -} - - diff --git a/src/emu/mod.rs b/src/emu/mod.rs index be48bdd..b40a4fb 100644 --- a/src/emu/mod.rs +++ b/src/emu/mod.rs @@ -1,4 +1,3 @@ pub mod cpu; -pub mod mmu; -pub mod ram; +pub mod memory; pub mod graphics; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 16ec88a..f19bd7b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ use sdl2::render::WindowCanvas; use simple_logger::SimpleLogger; use crate::emu::cpu::Cpu; use crate::emu::graphics::GraphicsProcessor; -use crate::emu::ram::{MEM_LENGTH, RamMemory}; +use crate::emu::memory::{MEM_LENGTH, RamMemory}; use crate::graphics::graphics_adapter::SDLGraphicsAdapter; use crate::misc::result::EmulatorResult; diff --git a/src/misc/emulator_error.rs b/src/misc/emulator_error.rs index d1270d9..8317fc9 100644 --- a/src/misc/emulator_error.rs +++ b/src/misc/emulator_error.rs @@ -7,9 +7,6 @@ use crate::misc::emulator_error::EmulatorError::EmulatorIOError; pub enum DeviceType { CPU, RAM, - MMU, - /// Program counter - PC, KEYBOARD, AUDIO, GRAPHICS,