mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-21 21:33:54 +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:
|
||||
// The list of deferred actions.
|
||||
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
|
||||
// too terrible.
|
||||
if(isReadOperation(operation) && address != 0xc000) {
|
||||
if(video_.has_deferred_actions()) {
|
||||
update_video();
|
||||
}
|
||||
*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 0xc051:
|
||||
update_video();
|
||||
video_.set_text(!!(address&1));
|
||||
video_.set_text(address&1);
|
||||
break;
|
||||
case 0xc052: update_video(); video_.set_mixed(false); break;
|
||||
case 0xc053: update_video(); video_.set_mixed(true); break;
|
||||
|
@ -10,7 +10,6 @@
|
||||
|
||||
#include "../../../Outputs/CRT/CRT.hpp"
|
||||
#include "../../../ClockReceiver/ClockReceiver.hpp"
|
||||
#include "../../../ClockReceiver/DeferredQueue.hpp"
|
||||
|
||||
#include "VideoSwitches.hpp"
|
||||
|
||||
|
@ -247,6 +247,10 @@ template <typename TimeUnit> class VideoSwitches {
|
||||
}
|
||||
}
|
||||
|
||||
bool has_deferred_actions() const {
|
||||
return !deferrer_.empty();
|
||||
}
|
||||
|
||||
protected:
|
||||
GraphicsMode graphics_mode(int row) const {
|
||||
if(
|
||||
|
@ -62,7 +62,7 @@
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
enableASanStackUseAfterReturn = "YES"
|
||||
|
Loading…
Reference in New Issue
Block a user