diff --git a/emulator/dsa_emulator/src/processor/dsa_core.rs b/emulator/dsa_emulator/src/processor/dsa_core.rs index 1c023b4..adeef2c 100644 --- a/emulator/dsa_emulator/src/processor/dsa_core.rs +++ b/emulator/dsa_emulator/src/processor/dsa_core.rs @@ -1,13 +1,12 @@ -use common::isa::instructions::Opcode; -use common::prelude::{Instruction, Register}; -use crate::config::{IoMap, MemoryMap, RegionType}; use crate::DsaError; -use crate::DsaError::BootFailure; +use crate::config::{IoMap, MemoryMap, RegionType}; use crate::memory::mmu::MMU; use crate::memory::ram::{MemoryBank, Page}; use crate::processor::interrupts::Interrupt; -use crate::processor::state::{ProcessorSnapshot, SharedState}; use crate::processor::state::RunningState::Running; +use crate::processor::state::ProcessorSnapshot; +use common::isa::instructions::Opcode; +use common::prelude::{Instruction, Register}; #[derive(Copy, Clone, Debug)] pub enum ExecutionResult { @@ -28,7 +27,6 @@ pub struct DsaProcessor { } impl DsaProcessor { - pub fn reset(&mut self) { self.internal_state = ProcessorSnapshot::default(); self.mmu = MMU::new(); @@ -259,7 +257,9 @@ impl DsaProcessor { self.reg(Register::Pcx) ); } - Some(Opcode::Int) => return ExecutionResult::Interrupt(Interrupt::Software(word.imm16() as u8)), + Some(Opcode::Int) => { + return ExecutionResult::Interrupt(Interrupt::Software(word.imm16() as u8)); + } Some(Opcode::Hlt) => return ExecutionResult::Halt, None => return ExecutionResult::Interrupt(Interrupt::InvalidOpcode), } @@ -363,13 +363,13 @@ impl DsaProcessor { } pub fn boot(&mut self) -> Result<(), DsaError> { - if !(self.__mmap_configured) { - return Err(BootFailure("Emulator not configured".to_string())); - } - - if let Some(map) = &self.memory_map { - MemoryMap::identity_map(&mut self.mmu, map.regions.get(0).unwrap()); - } + // if !(self.__mmap_configured) { + // return Err(BootFailure("Emulator not configured".to_string())); + // } + // + // if let Some(map) = &self.memory_map { + // MemoryMap::identity_map(&mut self.mmu, map.regions.get(0).unwrap()); + // } self.internal_state.running = Running; Ok(()) @@ -389,4 +389,4 @@ impl Drop for DsaProcessor { // drop is only ever called once on an dsa_emulator instance, so we can be sure a double free will not happen. unsafe { self.mainstore.dealloc() } } -} \ No newline at end of file +}