mirror of
https://github.com/TomHarte/CLK.git
synced 2025-05-08 22:43:14 +00:00
Apply applicable deferred actions before lookahead.
This commit is contained in:
parent
fadd3bc6fc
commit
35545451fe
@ -73,6 +73,11 @@ template <typename TimeUnit> class DeferredQueue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// @returns @c true if no actions are enqueued; @c false otherwise.
|
||||||
|
bool empty() const {
|
||||||
|
return pending_actions_.empty();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The list of deferred actions.
|
// The list of deferred actions.
|
||||||
struct DeferredAction {
|
struct DeferredAction {
|
||||||
|
@ -742,6 +742,9 @@ template <Analyser::Static::AppleII::Target::Model model, bool has_mockingboard>
|
|||||||
// actor, but this will actually be the result most of the time so it's not
|
// actor, but this will actually be the result most of the time so it's not
|
||||||
// too terrible.
|
// too terrible.
|
||||||
if(isReadOperation(operation) && address != 0xc000) {
|
if(isReadOperation(operation) && address != 0xc000) {
|
||||||
|
if(video_.has_deferred_actions()) {
|
||||||
|
update_video();
|
||||||
|
}
|
||||||
*value = video_.get_last_read_value(cycles_since_video_update_);
|
*value = video_.get_last_read_value(cycles_since_video_update_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -851,7 +854,7 @@ template <Analyser::Static::AppleII::Target::Model model, bool has_mockingboard>
|
|||||||
case 0xc050:
|
case 0xc050:
|
||||||
case 0xc051:
|
case 0xc051:
|
||||||
update_video();
|
update_video();
|
||||||
video_.set_text(!!(address&1));
|
video_.set_text(address&1);
|
||||||
break;
|
break;
|
||||||
case 0xc052: update_video(); video_.set_mixed(false); break;
|
case 0xc052: update_video(); video_.set_mixed(false); break;
|
||||||
case 0xc053: update_video(); video_.set_mixed(true); break;
|
case 0xc053: update_video(); video_.set_mixed(true); break;
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#include "../../../Outputs/CRT/CRT.hpp"
|
#include "../../../Outputs/CRT/CRT.hpp"
|
||||||
#include "../../../ClockReceiver/ClockReceiver.hpp"
|
#include "../../../ClockReceiver/ClockReceiver.hpp"
|
||||||
#include "../../../ClockReceiver/DeferredQueue.hpp"
|
|
||||||
|
|
||||||
#include "VideoSwitches.hpp"
|
#include "VideoSwitches.hpp"
|
||||||
|
|
||||||
|
@ -247,6 +247,10 @@ template <typename TimeUnit> class VideoSwitches {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool has_deferred_actions() const {
|
||||||
|
return !deferrer_.empty();
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GraphicsMode graphics_mode(int row) const {
|
GraphicsMode graphics_mode(int row) const {
|
||||||
if(
|
if(
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
</Testables>
|
</Testables>
|
||||||
</TestAction>
|
</TestAction>
|
||||||
<LaunchAction
|
<LaunchAction
|
||||||
buildConfiguration = "Release"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
enableASanStackUseAfterReturn = "YES"
|
enableASanStackUseAfterReturn = "YES"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user