Skip to content

Commit

Permalink
Multiple bug fixes and enhancements
Browse files Browse the repository at this point in the history
- Fixed incorrect addresses in instruction Display impl
- Tracing now includes raw byte stream of each instruction
- Bus alignment errors now include offending address
- Effective address is now stored off onto operands
- MOVTRW support (non-MMU) added
  • Loading branch information
sethm committed Aug 31, 2022
1 parent dc4facf commit c3677ab
Show file tree
Hide file tree
Showing 5 changed files with 228 additions and 243 deletions.
10 changes: 5 additions & 5 deletions src/bus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ impl Bus {
return Ok(&mut self.ram);
}

Err(BusError::NoDevice(address as u32))
Err(BusError::NoDevice(address))
}

pub fn trace_on(&mut self, name: &str) -> std::io::Result<()> {
Expand Down Expand Up @@ -134,14 +134,14 @@ impl Bus {

pub fn read_half(&mut self, address: usize, access: AccessCode) -> Result<u16, BusError> {
if address & 1 != 0 {
return Err(BusError::Alignment);
return Err(BusError::Alignment(address));
}
self.get_device(address)?.read_half(address, access)
}

pub fn read_word(&mut self, address: usize, access: AccessCode) -> Result<u32, BusError> {
if address & 3 != 0 {
return Err(BusError::Alignment);
return Err(BusError::Alignment(address));
}
self.get_device(address)?.read_word(address, access)
}
Expand All @@ -168,14 +168,14 @@ impl Bus {

pub fn write_half(&mut self, address: usize, val: u16) -> Result<(), BusError> {
if address & 1 != 0 {
return Err(BusError::Alignment);
return Err(BusError::Alignment(address));
}
self.get_device(address)?.write_half(address, val, AccessCode::Write)
}

pub fn write_word(&mut self, address: usize, val: u32) -> Result<(), BusError> {
if address & 3 != 0 {
return Err(BusError::Alignment);
return Err(BusError::Alignment(address));
}
self.get_device(address)?.write_word(address, val, AccessCode::Write)
}
Expand Down

0 comments on commit c3677ab

Please sign in to comment.