mirror of
https://github.com/transistorfet/moa.git
synced 2026-04-26 20:17:52 +00:00
Added hack to return instructions to correctly adjust PC
This commit is contained in:
@@ -801,18 +801,27 @@ impl M68k {
|
||||
}
|
||||
|
||||
self.set_sr(sr);
|
||||
self.set_pc(addr)?;
|
||||
if let Err(err) = self.set_pc(addr) {
|
||||
self.state.pc -= 2;
|
||||
return Err(err);
|
||||
}
|
||||
},
|
||||
Instruction::RTR => {
|
||||
let ccr = self.pop_word()?;
|
||||
let addr = self.pop_long()?;
|
||||
self.set_sr((self.state.sr & 0xFF00) | (ccr & 0x00FF));
|
||||
self.set_pc(addr)?;
|
||||
if let Err(err) = self.set_pc(addr) {
|
||||
self.state.pc -= 2;
|
||||
return Err(err);
|
||||
}
|
||||
},
|
||||
Instruction::RTS => {
|
||||
self.debugger.stack_tracer.pop_return();
|
||||
let addr = self.pop_long()?;
|
||||
self.set_pc(addr)?;
|
||||
if let Err(err) = self.set_pc(addr) {
|
||||
self.state.pc -= 2;
|
||||
return Err(err);
|
||||
}
|
||||
},
|
||||
//Instruction::RTD(i16) => {
|
||||
//},
|
||||
|
||||
Reference in New Issue
Block a user