mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-25 16:31:42 +00:00
Adjust (abs, y) addressing.
This commit is contained in:
parent
bf5ed98f35
commit
d33deb676f
@ -544,6 +544,17 @@ template <Personality personality, typename T, bool uses_ready_line> void Proces
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
case CycleAddYToAddressLow:
|
||||
next_address_.full = address_.full + y_;
|
||||
address_.halves.low = next_address_.halves.low;
|
||||
if(address_.halves.high != next_address_.halves.high) {
|
||||
page_crossing_stall_read();
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
|
||||
#undef page_crossing_stall_read
|
||||
|
||||
case CycleAddXToAddressLowRead:
|
||||
next_address_.full = address_.full + x_;
|
||||
address_.halves.low = next_address_.halves.low;
|
||||
@ -559,21 +570,18 @@ template <Personality personality, typename T, bool uses_ready_line> void Proces
|
||||
throwaway_read(pc_.full - 1);
|
||||
}
|
||||
break;
|
||||
case CycleAddYToAddressLow:
|
||||
next_address_.full = address_.full + y_;
|
||||
address_.halves.low = next_address_.halves.low;
|
||||
if(address_.halves.high != next_address_.halves.high) {
|
||||
page_crossing_stall_read();
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
case CycleAddYToAddressLowRead:
|
||||
next_address_.full = address_.full + y_;
|
||||
address_.halves.low = next_address_.halves.low;
|
||||
page_crossing_stall_read();
|
||||
break;
|
||||
|
||||
#undef page_crossing_stall_read
|
||||
// A similar rule as for above applies; this one adjusts (abs, y) addressing.
|
||||
|
||||
if(!is_65c02(personality) || next_address_.full == address_.full) {
|
||||
throwaway_read(address_.full);
|
||||
} else {
|
||||
throwaway_read(pc_.full - 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case OperationCorrectAddressHigh:
|
||||
// Preserve the uncorrected address in next_address_ (albeit that it's
|
||||
|
Loading…
Reference in New Issue
Block a user