From 55af6681af783d055072adf8c49a77b2d3c103f9 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 24 Nov 2021 17:15:48 -0500 Subject: [PATCH] Avoid unnecessary `get_port_input` calls. --- Components/6526/Implementation/6526Implementation.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Components/6526/Implementation/6526Implementation.hpp b/Components/6526/Implementation/6526Implementation.hpp index f66734da2..92ecf5269 100644 --- a/Components/6526/Implementation/6526Implementation.hpp +++ b/Components/6526/Implementation/6526Implementation.hpp @@ -31,8 +31,10 @@ template void MOS6526::set_port_output() { template template uint8_t MOS6526::get_port_input() { - const uint8_t input = port_handler_.get_port_input(Port(port)); - return (input & ~data_direction_[port]) | (output_[port] & data_direction_[port]); + // Avoid bothering the port handler if there's no input active. + const uint8_t input_mask = ~data_direction_[port]; + const uint8_t input = input_mask ? port_handler_.get_port_input(Port(port)) : 0x00; + return (input & input_mask) | (output_[port] & data_direction_[port]); } template