1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-01-05 13:30:07 +00:00

Merge pull request #1428 from TomHarte/MoreIndentation

Adjust more dangling indentation changes.
This commit is contained in:
Thomas Harte 2024-12-04 22:40:30 -05:00 committed by GitHub
commit 88b31ea940
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
45 changed files with 5530 additions and 5528 deletions

View File

@ -70,7 +70,7 @@ private:
uint8_t track_; uint8_t track_;
std::shared_ptr<Sector> sector_cache_[65536]; std::shared_ptr<Sector> sector_cache_[65536];
void process_input_bit(const int value) { void process_input_bit(const int value) override {
shift_register_ = ((shift_register_ << 1) | unsigned(value)) & 0x3ff; shift_register_ = ((shift_register_ << 1) | unsigned(value)) & 0x3ff;
bit_count_++; bit_count_++;
} }
@ -107,7 +107,7 @@ private:
} }
} }
void process_index_hole() { void process_index_hole() override {
index_count_++; index_count_++;
} }

View File

@ -24,7 +24,7 @@ namespace Apple::II {
Implementation observation: as implemented on the IIe, the zero page setting also affects what happens in the language card area. Implementation observation: as implemented on the IIe, the zero page setting also affects what happens in the language card area.
*/ */
template <typename Machine> class AuxiliaryMemorySwitches { template <typename Machine> class AuxiliaryMemorySwitches {
public: public:
static constexpr bool Auxiliary = true; static constexpr bool Auxiliary = true;
static constexpr bool Main = false; static constexpr bool Main = false;
static constexpr bool ROM = true; static constexpr bool ROM = true;
@ -220,7 +220,7 @@ template <typename Machine> class AuxiliaryMemorySwitches {
set_card_paging(); set_card_paging();
} }
private: private:
Machine &machine_; Machine &machine_;
SwitchState switches_; SwitchState switches_;

View File

@ -19,7 +19,7 @@
namespace Apple::IIgs::ADB { namespace Apple::IIgs::ADB {
class GLU: public InstructionSet::M50740::PortHandler { class GLU: public InstructionSet::M50740::PortHandler {
public: public:
GLU(); GLU();
uint8_t get_keyboard_data(); uint8_t get_keyboard_data();
@ -53,7 +53,7 @@ class GLU: public InstructionSet::M50740::PortHandler {
return mouse_; return mouse_;
} }
private: private:
InstructionSet::M50740::Executor executor_; InstructionSet::M50740::Executor executor_;
void run_ports_for(Cycles) override; void run_ports_for(Cycles) override;

View File

@ -88,7 +88,7 @@ class ConcreteMachine:
public MachineTypes::TimedMachine, public MachineTypes::TimedMachine,
public CPU::MOS6502Esque::BusHandler<uint32_t> { public CPU::MOS6502Esque::BusHandler<uint32_t> {
public: public:
ConcreteMachine(const Analyser::Static::AppleIIgs::Target &target, const ROMMachine::ROMFetcher &rom_fetcher) : ConcreteMachine(const Analyser::Static::AppleIIgs::Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
m65816_(*this), m65816_(*this),
memory_(target.model >= Analyser::Static::AppleIIgs::Target::Model::ROM03), memory_(target.model >= Analyser::Static::AppleIIgs::Target::Model::ROM03),
@ -133,43 +133,43 @@ class ConcreteMachine:
// rom_[0x36402] = 2; // rom_[0x36402] = 2;
// rom_[0x36403] = 0x7c; // ROM_CHECKSUM [working, when hacks like this are removed] // rom_[0x36403] = 0x7c; // ROM_CHECKSUM [working, when hacks like this are removed]
// rom_[0x36404] = 0x6c; // rom_[0x36404] = 0x6c;
//
// rom_[0x36403] = 0x82; // MOVIRAM [working] // rom_[0x36403] = 0x82; // MOVIRAM [working]
// rom_[0x36404] = 0x67; // rom_[0x36404] = 0x67;
//
// rom_[0x36403] = 0x2c; // SOFT_SW [working] // rom_[0x36403] = 0x2c; // SOFT_SW [working]
// rom_[0x36404] = 0x6a; // rom_[0x36404] = 0x6a;
//
// rom_[0x36403] = 0xe8; // RAM_ADDR [working] // rom_[0x36403] = 0xe8; // RAM_ADDR [working]
// rom_[0x36404] = 0x6f; // rom_[0x36404] = 0x6f;
//
// rom_[0x36403] = 0xc7; // FPI_SPEED [working] // rom_[0x36403] = 0xc7; // FPI_SPEED [working]
// rom_[0x36404] = 0x6a; // rom_[0x36404] = 0x6a;
//
// rom_[0x36403] = 0xd7; // SER_TST [broken] // rom_[0x36403] = 0xd7; // SER_TST [broken]
// rom_[0x36404] = 0x68; // rom_[0x36404] = 0x68;
//
// rom_[0x36403] = 0xdc; // CLOCK [broken] // rom_[0x36403] = 0xdc; // CLOCK [broken]
// rom_[0x36404] = 0x6c; // rom_[0x36404] = 0x6c;
//
// rom_[0x36403] = 0x1b; // BAT_RAM [broken] // rom_[0x36403] = 0x1b; // BAT_RAM [broken]
// rom_[0x36404] = 0x6e; // rom_[0x36404] = 0x6e;
//
// rom_[0x36403] = 0x11; // FDB (/ADB?) [broken] // rom_[0x36403] = 0x11; // FDB (/ADB?) [broken]
// rom_[0x36404] = 0x6f; // rom_[0x36404] = 0x6f;
//
// rom_[0x36403] = 0x41; // SHADOW_TST [working] // rom_[0x36403] = 0x41; // SHADOW_TST [working]
// rom_[0x36404] = 0x6d; // rom_[0x36404] = 0x6d;
//
// rom_[0x36403] = 0x09; // CUSTOM_IRQ [broken?] // rom_[0x36403] = 0x09; // CUSTOM_IRQ [broken?]
// rom_[0x36404] = 0x6b; // rom_[0x36404] = 0x6b;
//
// rom_[0x36403] = 0xf4; // DOC_EXEC // rom_[0x36403] = 0xf4; // DOC_EXEC
// rom_[0x36404] = 0x70; // rom_[0x36404] = 0x70;
//
// rom_[0x36403] = 0xab; // ECT_SEQ // rom_[0x36403] = 0xab; // ECT_SEQ
// rom_[0x36404] = 0x64; // rom_[0x36404] = 0x64;
//
// rom_[0xfc146f] = rom_[0xfc1470] = 0xea; // rom_[0xfc146f] = rom_[0xfc1470] = 0xea;
size_t ram_size = 0; size_t ram_size = 0;
@ -932,7 +932,7 @@ class ConcreteMachine:
return joysticks_.get_joysticks(); return joysticks_.get_joysticks();
} }
private: private:
CPU::WDC65816::Processor<ConcreteMachine, false> m65816_; CPU::WDC65816::Processor<ConcreteMachine, false> m65816_;
MemoryMap memory_; MemoryMap memory_;

View File

@ -20,7 +20,7 @@
namespace Apple::IIgs { namespace Apple::IIgs {
class MemoryMap { class MemoryMap {
public: public:
// MARK: - Initial construction and configuration. // MARK: - Initial construction and configuration.
MemoryMap(bool is_rom03) : auxiliary_switches_(*this), language_card_(*this) { MemoryMap(bool is_rom03) : auxiliary_switches_(*this), language_card_(*this) {
@ -106,7 +106,7 @@ class MemoryMap {
// With a further twist: the modulo and pointer are indexed on ::IsShadowed to eliminate a branch // With a further twist: the modulo and pointer are indexed on ::IsShadowed to eliminate a branch
// even on that. // even on that.
private: private:
AuxiliaryMemorySwitches auxiliary_switches_; AuxiliaryMemorySwitches auxiliary_switches_;
LanguageCardSwitches language_card_; LanguageCardSwitches language_card_;
friend AuxiliaryMemorySwitches; friend AuxiliaryMemorySwitches;

View File

@ -17,7 +17,7 @@
namespace Apple::IIgs::Sound { namespace Apple::IIgs::Sound {
class GLU: public Outputs::Speaker::BufferSource<GLU, false> { // TODO: isn't this stereo? class GLU: public Outputs::Speaker::BufferSource<GLU, false> { // TODO: isn't this stereo?
public: public:
GLU(Concurrency::AsyncTaskQueue<false> &audio_queue); GLU(Concurrency::AsyncTaskQueue<false> &audio_queue);
void set_control(uint8_t); void set_control(uint8_t);
@ -39,7 +39,7 @@ class GLU: public Outputs::Speaker::BufferSource<GLU, false> { // TODO: isn't th
void set_sample_volume_range(std::int16_t range); void set_sample_volume_range(std::int16_t range);
bool is_zero_level() const { return false; } // TODO. bool is_zero_level() const { return false; } // TODO.
private: private:
Concurrency::AsyncTaskQueue<false> &audio_queue_; Concurrency::AsyncTaskQueue<false> &audio_queue_;
uint16_t address_ = 0; uint16_t address_ = 0;

View File

@ -20,7 +20,7 @@ namespace Apple::IIgs::Video {
stretched cycle. stretched cycle.
*/ */
class Video: public Apple::II::VideoSwitches<Cycles> { class Video: public Apple::II::VideoSwitches<Cycles> {
public: public:
Video(); Video();
void set_internal_ram(const uint8_t *); void set_internal_ram(const uint8_t *);
@ -69,7 +69,7 @@ class Video: public Apple::II::VideoSwitches<Cycles> {
void clear_megaii_interrupts(); void clear_megaii_interrupts();
private: private:
Outputs::CRT::CRT crt_; Outputs::CRT::CRT crt_;
// This is coupled to Apple::II::GraphicsMode, but adds detail for the IIgs. // This is coupled to Apple::II::GraphicsMode, but adds detail for the IIgs.

View File

@ -24,7 +24,7 @@ namespace Apple::Macintosh {
a shade less than 4Mhz. a shade less than 4Mhz.
*/ */
class Audio: public ::Outputs::Speaker::BufferSource<Audio, false> { class Audio: public ::Outputs::Speaker::BufferSource<Audio, false> {
public: public:
Audio(Concurrency::AsyncTaskQueue<false> &task_queue); Audio(Concurrency::AsyncTaskQueue<false> &task_queue);
/*! /*!
@ -55,7 +55,7 @@ class Audio: public ::Outputs::Speaker::BufferSource<Audio, false> {
bool is_zero_level() const; bool is_zero_level() const;
void set_sample_volume_range(std::int16_t range); void set_sample_volume_range(std::int16_t range);
private: private:
Concurrency::AsyncTaskQueue<false> &task_queue_; Concurrency::AsyncTaskQueue<false> &task_queue_;
// A queue of fetched samples; read from by one thread, // A queue of fetched samples; read from by one thread,

View File

@ -15,7 +15,7 @@
namespace Apple::Macintosh { namespace Apple::Macintosh {
class DriveSpeedAccumulator { class DriveSpeedAccumulator {
public: public:
/*! /*!
Accepts fetched motor control values. Accepts fetched motor control values.
*/ */
@ -31,7 +31,7 @@ class DriveSpeedAccumulator {
delegate_ = delegate; delegate_ = delegate;
} }
private: private:
static constexpr int samples_per_bucket = 20; static constexpr int samples_per_bucket = 20;
int sample_count_ = 0; int sample_count_ = 0;
int sample_total_ = 0; int sample_total_ = 0;

View File

@ -83,7 +83,7 @@ enum class Key: uint16_t {
}; };
class Keyboard { class Keyboard {
public: public:
void set_input(bool data) { void set_input(bool data) {
switch(mode_) { switch(mode_) {
case Mode::Waiting: case Mode::Waiting:
@ -218,7 +218,7 @@ class Keyboard {
key_queue_.insert(key_queue_.begin(), (is_pressed ? 0x00 : 0x80) | uint8_t(key)); key_queue_.insert(key_queue_.begin(), (is_pressed ? 0x00 : 0x80) | uint8_t(key));
} }
private: private:
/// Performs the pre-ADB Apple keyboard protocol command @c command, returning /// Performs the pre-ADB Apple keyboard protocol command @c command, returning
/// the proper result if the command were to terminate now. So, it treats inquiry /// the proper result if the command were to terminate now. So, it treats inquiry
/// and instant as the same command. /// and instant as the same command.

View File

@ -79,7 +79,7 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
public Configurable::Device, public Configurable::Device,
public DriveSpeedAccumulator::Delegate, public DriveSpeedAccumulator::Delegate,
public ClockingHint::Observer { public ClockingHint::Observer {
public: public:
using Target = Analyser::Static::Macintosh::Target; using Target = Analyser::Static::Macintosh::Target;
ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) : ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
@ -527,7 +527,7 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
} }
} }
private: private:
bool quickboot_ = false; bool quickboot_ = false;
void set_component_prefers_clocking(ClockingHint::Source *, ClockingHint::Preference) final { void set_component_prefers_clocking(ClockingHint::Source *, ClockingHint::Preference) final {

View File

@ -28,7 +28,7 @@ constexpr int sync_end = 38;
This class also collects audio and 400kb drive-speed data, forwarding those values. This class also collects audio and 400kb drive-speed data, forwarding those values.
*/ */
class Video { class Video {
public: public:
/*! /*!
Constructs an instance of @c Video sourcing its pixel data from @c ram and Constructs an instance of @c Video sourcing its pixel data from @c ram and
providing audio and drive-speed bytes to @c audio and @c drive_speed_accumulator. providing audio and drive-speed bytes to @c audio and @c drive_speed_accumulator.
@ -81,7 +81,7 @@ class Video {
*/ */
HalfCycles next_sequence_point(); HalfCycles next_sequence_point();
private: private:
DeferredAudio &audio_; DeferredAudio &audio_;
DriveSpeedAccumulator &drive_speed_accumulator_; DriveSpeedAccumulator &drive_speed_accumulator_;

View File

@ -36,7 +36,7 @@ namespace {
namespace Atari2600 { namespace Atari2600 {
class Joystick: public Inputs::ConcreteJoystick { class Joystick: public Inputs::ConcreteJoystick {
public: public:
Joystick(Bus *bus, std::size_t shift, std::size_t fire_tia_input) : Joystick(Bus *bus, std::size_t shift, std::size_t fire_tia_input) :
ConcreteJoystick({ ConcreteJoystick({
Input(Input::Up), Input(Input::Up),
@ -66,7 +66,7 @@ class Joystick: public Inputs::ConcreteJoystick {
} }
} }
private: private:
Bus *bus_; Bus *bus_;
std::size_t shift_, fire_tia_input_; std::size_t shift_, fire_tia_input_;
}; };
@ -79,7 +79,7 @@ class ConcreteMachine:
public MachineTypes::AudioProducer, public MachineTypes::AudioProducer,
public MachineTypes::ScanProducer, public MachineTypes::ScanProducer,
public MachineTypes::JoystickMachine { public MachineTypes::JoystickMachine {
public: public:
ConcreteMachine(const Target &target) : frequency_mismatch_warner_(*this) { ConcreteMachine(const Target &target) : frequency_mismatch_warner_(*this) {
const std::vector<uint8_t> &rom = target.media.cartridges.front()->get_segments().front().data; const std::vector<uint8_t> &rom = target.media.cartridges.front()->get_segments().front().data;
@ -187,7 +187,7 @@ class ConcreteMachine:
return confidence_counter_.get_confidence(); return confidence_counter_.get_confidence();
} }
private: private:
// The bus. // The bus.
std::unique_ptr<Bus> bus_; std::unique_ptr<Bus> bus_;

View File

@ -64,7 +64,7 @@ class ConcreteMachine:
public GI::AY38910::PortHandler, public GI::AY38910::PortHandler,
public Configurable::Device, public Configurable::Device,
public Video::RangeObserver { public Video::RangeObserver {
public: public:
ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) : ConcreteMachine(const Target &target, const ROMMachine::ROMFetcher &rom_fetcher) :
mc68000_(*this), mc68000_(*this),
keyboard_acia_(Cycles(500000)), keyboard_acia_(Cycles(500000)),
@ -455,7 +455,7 @@ class ConcreteMachine:
} }
} }
private: private:
forceinline void advance_time(HalfCycles length) { forceinline void advance_time(HalfCycles length) {
// Advance the relevant counters. // Advance the relevant counters.
cycles_since_audio_update_ += length; cycles_since_audio_update_ += length;

View File

@ -19,7 +19,7 @@
namespace Atari::ST { namespace Atari::ST {
class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, public ClockingHint::Observer { class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, public ClockingHint::Observer {
public: public:
DMAController(); DMAController();
uint16_t read(int address); uint16_t read(int address);
@ -50,7 +50,7 @@ class DMAController: public WD::WD1770::Delegate, public ClockingHint::Source, p
// ClockingHint::Source. // ClockingHint::Source.
ClockingHint::Preference preferred_clocking() const final; ClockingHint::Preference preferred_clocking() const final;
private: private:
HalfCycles running_time_; HalfCycles running_time_;
struct WD1772: public WD::WD1770 { struct WD1772: public WD::WD1770 {
WD1772(): WD::WD1770(WD::WD1770::P1772) { WD1772(): WD::WD1770(WD::WD1770::P1772) {

View File

@ -54,7 +54,7 @@ class IntelligentKeyboard:
public Serial::Line<false>::ReadDelegate, public Serial::Line<false>::ReadDelegate,
public ClockingHint::Source, public ClockingHint::Source,
public Inputs::Mouse { public Inputs::Mouse {
public: public:
IntelligentKeyboard(Serial::Line<false> &input, Serial::Line<false> &output); IntelligentKeyboard(Serial::Line<false> &input, Serial::Line<false> &output);
ClockingHint::Preference preferred_clocking() const final; ClockingHint::Preference preferred_clocking() const final;
void run_for(HalfCycles duration); void run_for(HalfCycles duration);
@ -68,7 +68,7 @@ class IntelligentKeyboard:
return joysticks_; return joysticks_;
} }
private: private:
// MARK: - Key queue. // MARK: - Key queue.
std::mutex key_queue_mutex_; std::mutex key_queue_mutex_;
std::vector<uint8_t> key_queue_; std::vector<uint8_t> key_queue_;

View File

@ -31,7 +31,7 @@ struct LineLength {
(hopefully) to a subsystem. (hopefully) to a subsystem.
*/ */
class Video { class Video {
public: public:
Video(); Video();
/*! /*!
@ -123,7 +123,7 @@ class Video {
*/ */
Range get_memory_access_range(); Range get_memory_access_range();
private: private:
DeferredQueue<HalfCycles> deferrer_; DeferredQueue<HalfCycles> deferrer_;
Outputs::CRT::CRT crt_; Outputs::CRT::CRT crt_;

View File

@ -38,7 +38,7 @@ namespace Commodore::C1540 {
The attention input is also connected to CA1, similarly invertedl; the CA1 wire will be high when the bus is low and vice versa. The attention input is also connected to CA1, similarly invertedl; the CA1 wire will be high when the bus is low and vice versa.
*/ */
class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler { class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
public: public:
SerialPortVIA(MOS::MOS6522::MOS6522<SerialPortVIA> &via); SerialPortVIA(MOS::MOS6522::MOS6522<SerialPortVIA> &via);
uint8_t get_port_input(MOS::MOS6522::Port); uint8_t get_port_input(MOS::MOS6522::Port);
@ -48,7 +48,7 @@ class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
void set_serial_port(const std::shared_ptr<::Commodore::Serial::Port> &); void set_serial_port(const std::shared_ptr<::Commodore::Serial::Port> &);
private: private:
MOS::MOS6522::MOS6522<SerialPortVIA> &via_; MOS::MOS6522::MOS6522<SerialPortVIA> &via_;
uint8_t port_b_ = 0x0; uint8_t port_b_ = 0x0;
std::weak_ptr<::Commodore::Serial::Port> serial_port_; std::weak_ptr<::Commodore::Serial::Port> serial_port_;
@ -76,7 +76,7 @@ class SerialPortVIA: public MOS::MOS6522::IRQDelegatePortHandler {
whether the disk head is being told to read or write, but it's unclear and I've yet to investigate. So, TODO. whether the disk head is being told to read or write, but it's unclear and I've yet to investigate. So, TODO.
*/ */
class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler { class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
public: public:
class Delegate { class Delegate {
public: public:
virtual void drive_via_did_step_head(void *driveVIA, int direction) = 0; virtual void drive_via_did_step_head(void *driveVIA, int direction) = 0;
@ -97,7 +97,7 @@ class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
void set_activity_observer(Activity::Observer *observer); void set_activity_observer(Activity::Observer *observer);
private: private:
uint8_t port_b_ = 0xff, port_a_ = 0xff; uint8_t port_b_ = 0xff, port_a_ = 0xff;
bool should_set_overflow_ = false; bool should_set_overflow_ = false;
bool drive_motor_ = false; bool drive_motor_ = false;
@ -110,11 +110,11 @@ class DriveVIA: public MOS::MOS6522::IRQDelegatePortHandler {
An implementation of the C1540's serial port; this connects incoming line levels to the serial-port VIA. An implementation of the C1540's serial port; this connects incoming line levels to the serial-port VIA.
*/ */
class SerialPort : public ::Commodore::Serial::Port { class SerialPort : public ::Commodore::Serial::Port {
public: public:
void set_input(::Commodore::Serial::Line, ::Commodore::Serial::LineLevel); void set_input(::Commodore::Serial::Line, ::Commodore::Serial::LineLevel);
void set_serial_port_via(const std::shared_ptr<SerialPortVIA> &); void set_serial_port_via(const std::shared_ptr<SerialPortVIA> &);
private: private:
std::weak_ptr<SerialPortVIA> serial_port_VIA_; std::weak_ptr<SerialPortVIA> serial_port_VIA_;
}; };
@ -124,7 +124,7 @@ class MachineBase:
public DriveVIA::Delegate, public DriveVIA::Delegate,
public Storage::Disk::Controller { public Storage::Disk::Controller {
public: public:
MachineBase(Personality personality, const ROM::Map &roms); MachineBase(Personality personality, const ROM::Map &roms);
// to satisfy CPU::MOS6502::Processor // to satisfy CPU::MOS6502::Processor
@ -140,7 +140,7 @@ class MachineBase:
/// Attaches the activity observer to this C1540. /// Attaches the activity observer to this C1540.
void set_activity_observer(Activity::Observer *observer); void set_activity_observer(Activity::Observer *observer);
protected: protected:
CPU::MOS6502::Processor<CPU::MOS6502::Personality::P6502, MachineBase, false> m6502_; CPU::MOS6502::Processor<CPU::MOS6502::Personality::P6502, MachineBase, false> m6502_;
uint8_t ram_[0x800]; uint8_t ram_[0x800];

View File

@ -209,7 +209,7 @@ struct Description {
/// plus all the fields provided as @c flags . /// plus all the fields provided as @c flags .
std::string description(int flags) const; std::string description(int flags) const;
private: private:
template <typename FileNameT, typename CRC32T> Description( template <typename FileNameT, typename CRC32T> Description(
Name name, std::string machine_name, std::string descriptive_name, FileNameT file_names, size_t size, CRC32T crc32s = uint32_t(0) Name name, std::string machine_name, std::string descriptive_name, FileNameT file_names, size_t size, CRC32T crc32s = uint32_t(0)
) : name{name}, machine_name{machine_name}, descriptive_name{descriptive_name}, file_names{file_names}, size{size}, crc32s{crc32s} { ) : name{name}, machine_name{machine_name}, descriptive_name{descriptive_name}, file_names{file_names}, size{size}, crc32s{crc32s} {
@ -273,7 +273,7 @@ struct Request {
/// portion of a sentence, e.g. "Please supply" + request.description(0, L'*'). /// portion of a sentence, e.g. "Please supply" + request.description(0, L'*').
std::wstring description(int description_flags, wchar_t bullet_point); std::wstring description(int description_flags, wchar_t bullet_point);
private: private:
struct Node { struct Node {
enum class Type { enum class Type {
Any, All, One Any, All, One

View File

@ -14,13 +14,13 @@
namespace Utility { namespace Utility {
class StringSerialiser { class StringSerialiser {
public: public:
StringSerialiser(const std::string &source, bool use_linefeed_only = false); StringSerialiser(const std::string &source, bool use_linefeed_only = false);
uint8_t head(); uint8_t head();
bool advance(); bool advance();
private: private:
std::string input_string_; std::string input_string_;
std::size_t input_string_pointer_ = 0; std::size_t input_string_pointer_ = 0;
}; };

View File

@ -15,7 +15,7 @@
namespace Machine { namespace Machine {
template<typename T> class TypedDynamicMachine: public ::Machine::DynamicMachine { template<typename T> class TypedDynamicMachine: public ::Machine::DynamicMachine {
public: public:
TypedDynamicMachine(std::unique_ptr<T> &&machine) : machine_(std::move(machine)) {} TypedDynamicMachine(std::unique_ptr<T> &&machine) : machine_(std::move(machine)) {}
T *get() { return machine_.get(); } T *get() { return machine_.get(); }
@ -47,7 +47,7 @@ template<typename T> class TypedDynamicMachine: public ::Machine::DynamicMachine
return get(); return get();
} }
private: private:
template <typename Class> Class *get() { template <typename Class> Class *get() {
return dynamic_cast<Class *>(machine_.get()); return dynamic_cast<Class *>(machine_.get());

View File

@ -63,7 +63,7 @@ class CharacterMapper {
fresh key transition is ready to be consumed. fresh key transition is ready to be consumed.
*/ */
class Typer { class Typer {
public: public:
class Delegate: public MachineTypes::KeyActions { class Delegate: public MachineTypes::KeyActions {
public: public:
/// Informs the delegate that this typer has reached the end of its content. /// Informs the delegate that this typer has reached the end of its content.
@ -85,7 +85,7 @@ class Typer {
const char BeginString = 0x02; // i.e. ASCII start of text const char BeginString = 0x02; // i.e. ASCII start of text
const char EndString = 0x03; // i.e. ASCII end of text const char EndString = 0x03; // i.e. ASCII end of text
private: private:
std::string string_; std::string string_;
std::size_t string_pointer_ = 0; std::size_t string_pointer_ = 0;
@ -106,7 +106,7 @@ class Typer {
*/ */
template <typename CMapper> template <typename CMapper>
class TypeRecipient: public Typer::Delegate { class TypeRecipient: public Typer::Delegate {
protected: protected:
template <typename... Args> TypeRecipient(Args&&... args) : character_mapper(std::forward<Args>(args)...) {} template <typename... Args> TypeRecipient(Args&&... args) : character_mapper(std::forward<Args>(args)...) {}
/// Attaches a typer to this class that will type @c string using @c character_mapper as a source. /// Attaches a typer to this class that will type @c string using @c character_mapper as a source.
@ -144,7 +144,7 @@ class TypeRecipient: public Typer::Delegate {
virtual HalfCycles get_typer_frequency() const { return HalfCycles(0); } virtual HalfCycles get_typer_frequency() const { return HalfCycles(0); }
std::unique_ptr<Typer> typer_; std::unique_ptr<Typer> typer_;
private: private:
std::unique_ptr<Typer> previous_typer_; std::unique_ptr<Typer> previous_typer_;
CMapper character_mapper; CMapper character_mapper;
}; };

View File

@ -26,8 +26,9 @@ constexpr uint8_t reverse_byte(uint8_t byte) {
} }
/*! Provides a class capable of generating a CRC from source data. */ /*! Provides a class capable of generating a CRC from source data. */
template <typename IntType, IntType reset_value, IntType output_xor, bool reflect_input, bool reflect_output> class Generator { template <typename IntType, IntType reset_value, IntType output_xor, bool reflect_input, bool reflect_output>
public: class Generator {
public:
/*! /*!
Instantiates a CRC16 that will compute the CRC16 specified by the supplied Instantiates a CRC16 that will compute the CRC16 specified by the supplied
@c polynomial and @c reset_value. @c polynomial and @c reset_value.
@ -97,7 +98,7 @@ template <typename IntType, IntType reset_value, IntType output_xor, bool reflec
return get_value(); return get_value();
} }
private: private:
static constexpr int multibyte_shift = (sizeof(IntType) * 8) - 8; static constexpr int multibyte_shift = (sizeof(IntType) * 8) - 8;
IntType xor_table[256]; IntType xor_table[256];
IntType value_; IntType value_;

View File

@ -40,7 +40,7 @@ template <> struct LSFRPolynomial<uint8_t> {
in the specified int type. in the specified int type.
*/ */
template <typename IntType = uint64_t, IntType polynomial = LSFRPolynomial<IntType>::value> class LFSR { template <typename IntType = uint64_t, IntType polynomial = LSFRPolynomial<IntType>::value> class LFSR {
public: public:
/*! /*!
Constructs an LFSR with a random initial value. Constructs an LFSR with a random initial value.
*/ */
@ -73,7 +73,7 @@ template <typename IntType = uint64_t, IntType polynomial = LSFRPolynomial<IntTy
return result; return result;
} }
private: private:
IntType value_ = 0; IntType value_ = 0;
}; };

View File

@ -28,7 +28,7 @@ namespace Numeric {
/// = 65 /// = 65
/// ///
template <int... Sizes> class NumericCoder { template <int... Sizes> class NumericCoder {
public: public:
/// Modifies @c target to hold @c value at @c index. /// Modifies @c target to hold @c value at @c index.
template <int index> static void encode(int &target, int value) { template <int index> static void encode(int &target, int value) {
static_assert(index < sizeof...(Sizes), "Index must be within range"); static_assert(index < sizeof...(Sizes), "Index must be within range");
@ -41,7 +41,7 @@ template <int... Sizes> class NumericCoder {
return NumericDecoder<Sizes...>::template decode<index>(source); return NumericDecoder<Sizes...>::template decode<index>(source);
} }
private: private:
template <int size, int... Tail> template <int size, int... Tail>
struct NumericEncoder { struct NumericEncoder {

View File

@ -55,7 +55,7 @@ class Delegate {
colour phase for colour composite video. colour phase for colour composite video.
*/ */
class CRT { class CRT {
private: private:
// The incoming clock lengths will be multiplied by @c time_multiplier_; this increases // The incoming clock lengths will be multiplied by @c time_multiplier_; this increases
// precision across the line. // precision across the line.
int time_multiplier_ = 1; int time_multiplier_ = 1;
@ -109,7 +109,7 @@ class CRT {
size_t allocated_data_length_ = std::numeric_limits<size_t>::min(); size_t allocated_data_length_ = std::numeric_limits<size_t>::min();
#endif #endif
public: public:
/*! Constructs the CRT with a specified clock rate, height and colour subcarrier frequency. /*! Constructs the CRT with a specified clock rate, height and colour subcarrier frequency.
The requested number of buffers, each with the requested number of bytes per pixel, The requested number of buffers, each with the requested number of bytes per pixel,
is created for the machine to write raw pixel data to. is created for the machine to write raw pixel data to.
@ -353,7 +353,7 @@ class CRT {
ask its receiver to try a different display frequency. ask its receiver to try a different display frequency.
*/ */
template <typename Receiver> class CRTFrequencyMismatchWarner: public Outputs::CRT::Delegate { template <typename Receiver> class CRTFrequencyMismatchWarner: public Outputs::CRT::Delegate {
public: public:
CRTFrequencyMismatchWarner(Receiver &receiver) : receiver_(receiver) {} CRTFrequencyMismatchWarner(Receiver &receiver) : receiver_(receiver) {}
void crt_did_end_batch_of_frames(Outputs::CRT::CRT *, int number_of_frames, int number_of_unexpected_vertical_syncs) final { void crt_did_end_batch_of_frames(Outputs::CRT::CRT *, int number_of_frames, int number_of_unexpected_vertical_syncs) final {
@ -383,7 +383,7 @@ template <typename Receiver> class CRTFrequencyMismatchWarner: public Outputs::C
} }
} }
private: private:
Receiver &receiver_; Receiver &receiver_;
struct FrameRecord { struct FrameRecord {
int number_of_frames = 0; int number_of_frames = 0;

View File

@ -229,7 +229,7 @@ struct Flywheel {
(counter_ >= expected_next_sync_ - (standard_period_ / 100)); (counter_ >= expected_next_sync_ - (standard_period_ / 100));
} }
private: private:
const int standard_period_; // The idealised length of time between syncs. const int standard_period_; // The idealised length of time between syncs.
const int retrace_time_; // A constant indicating the amount of time it takes to perform a retrace. const int retrace_time_; // A constant indicating the amount of time it takes to perform a retrace.
const int sync_error_window_; // A constant indicating the window either side of the next expected sync in which we'll accept other syncs. const int sync_error_window_; // A constant indicating the window either side of the next expected sync in which we'll accept other syncs.

View File

@ -22,15 +22,15 @@ namespace Outputs::Display {
to allow for host-client frame synchronisation. to allow for host-client frame synchronisation.
*/ */
class Metrics { class Metrics {
public: public:
/// Notifies Metrics of a beam event. /// Notifies Metrics of a beam event.
void announce_event(ScanTarget::Event event); void announce_event(ScanTarget::Event);
/// Notifies Metrics that the size of the output buffer has changed. /// Notifies Metrics that the size of the output buffer has changed.
void announce_did_resize(); void announce_did_resize();
/// Provides Metrics with a new data point for output speed estimation. /// Provides Metrics with a new data point for output speed estimation.
void announce_draw_status(size_t lines, std::chrono::high_resolution_clock::duration duration, bool complete); void announce_draw_status(size_t lines, std::chrono::high_resolution_clock::duration, bool complete);
/// Provides Metrics with a new data point for output speed estimation, albeit without line-specific information. /// Provides Metrics with a new data point for output speed estimation, albeit without line-specific information.
void announce_draw_status(bool complete); void announce_draw_status(bool complete);
@ -44,7 +44,7 @@ class Metrics {
/// @returns The number of lines since vertical retrace ended. /// @returns The number of lines since vertical retrace ended.
int current_line() const; int current_line() const;
private: private:
int lines_this_frame_ = 0; int lines_this_frame_ = 0;
std::array<int, 20> line_total_history_; std::array<int, 20> line_total_history_;
size_t line_total_history_pointer_ = 0; size_t line_total_history_pointer_ = 0;

View File

@ -18,7 +18,7 @@ namespace Outputs::Display::OpenGL {
Provides a wrapper for drawing a solid, single-colour rectangle. Provides a wrapper for drawing a solid, single-colour rectangle.
*/ */
class Rectangle { class Rectangle {
public: public:
/*! /*!
Instantiates an instance of Rectange with the coordinates given. Instantiates an instance of Rectange with the coordinates given.
*/ */
@ -29,7 +29,7 @@ class Rectangle {
*/ */
void draw(float red, float green, float blue); void draw(float red, float green, float blue);
private: private:
Shader pixel_shader_; Shader pixel_shader_;
GLuint drawing_vertex_array_ = 0, drawing_array_buffer_ = 0; GLuint drawing_vertex_array_ = 0, drawing_array_buffer_ = 0;
GLint colour_uniform_; GLint colour_uniform_;

View File

@ -19,7 +19,7 @@ namespace Outputs::Display::OpenGL {
handles render-to-texture framebuffer objects. handles render-to-texture framebuffer objects.
*/ */
class TextureTarget { class TextureTarget {
public: public:
/*! /*!
Creates a new texture target. Contents are initially undefined. Creates a new texture target. Contents are initially undefined.
@ -72,7 +72,7 @@ class TextureTarget {
*/ */
void draw(float aspect_ratio, float colour_threshold = 0.0f) const; void draw(float aspect_ratio, float colour_threshold = 0.0f) const;
private: private:
GLuint framebuffer_ = 0, texture_ = 0, renderbuffer_ = 0; GLuint framebuffer_ = 0, texture_ = 0, renderbuffer_ = 0;
const GLsizei width_ = 0, height_ = 0; const GLsizei width_ = 0, height_ = 0;
GLsizei expanded_width_ = 0, expanded_height_ = 0; GLsizei expanded_width_ = 0, expanded_height_ = 0;

View File

@ -36,7 +36,7 @@ namespace Outputs::Display::OpenGL {
drawn to the target framebuffer is a quad. drawn to the target framebuffer is a quad.
*/ */
class ScanTarget: public Outputs::Display::BufferingScanTarget { // TODO: use private inheritance and expose only display_metrics() and a custom cast? class ScanTarget: public Outputs::Display::BufferingScanTarget { // TODO: use private inheritance and expose only display_metrics() and a custom cast?
public: public:
ScanTarget(GLuint target_framebuffer = 0, float output_gamma = 2.2f); ScanTarget(GLuint target_framebuffer = 0, float output_gamma = 2.2f);
~ScanTarget(); ~ScanTarget();
@ -47,7 +47,7 @@ class ScanTarget: public Outputs::Display::BufferingScanTarget { // TODO: use pr
/*! Processes all the latest input, at a resolution suitable for later output to a framebuffer of the specified size. */ /*! Processes all the latest input, at a resolution suitable for later output to a framebuffer of the specified size. */
void update(int output_width, int output_height); void update(int output_width, int output_height);
private: private:
static constexpr int LineBufferWidth = 2048; static constexpr int LineBufferWidth = 2048;
static constexpr int LineBufferHeight = 2048; static constexpr int LineBufferHeight = 2048;

View File

@ -33,7 +33,7 @@ namespace Outputs::Display {
This buffer rejects new data when full. This buffer rejects new data when full.
*/ */
class BufferingScanTarget: public Outputs::Display::ScanTarget { class BufferingScanTarget: public Outputs::Display::ScanTarget {
public: public:
/*! @returns The DisplayMetrics object that this ScanTarget has been providing with announcements and draw overages. */ /*! @returns The DisplayMetrics object that this ScanTarget has been providing with announcements and draw overages. */
const Metrics &display_metrics(); const Metrics &display_metrics();
@ -164,7 +164,7 @@ class BufferingScanTarget: public Outputs::Display::ScanTarget {
/// Safe to call from any thread. /// Safe to call from any thread.
bool has_new_modals() const; bool has_new_modals() const;
private: private:
// ScanTarget overrides. // ScanTarget overrides.
void set_modals(Modals) final; void set_modals(Modals) final;
Outputs::Display::ScanTarget::Scan *begin_scan() final; Outputs::Display::ScanTarget::Scan *begin_scan() final;

View File

@ -100,7 +100,7 @@ class BufferSource {
/// ///
template <typename SourceT, bool stereo, int divider = 1> template <typename SourceT, bool stereo, int divider = 1>
struct SampleSource: public BufferSource<SourceT, stereo> { struct SampleSource: public BufferSource<SourceT, stereo> {
public: public:
template <Action action> template <Action action>
void apply_samples(std::size_t number_of_samples, typename SampleT<stereo>::type *target) { void apply_samples(std::size_t number_of_samples, typename SampleT<stereo>::type *target) {
auto &source = *static_cast<SourceT *>(this); auto &source = *static_cast<SourceT *>(this);
@ -144,7 +144,7 @@ struct SampleSource: public BufferSource<SourceT, stereo> {
// typename SampleT<stereo>::type level() const; // typename SampleT<stereo>::type level() const;
// void advance(); // void advance();
private: private:
int master_divider_{}; int master_divider_{};
}; };

View File

@ -45,8 +45,9 @@ template <typename... S> constexpr bool are_properly_ordered() {
An owner may optionally assign relative volumes. An owner may optionally assign relative volumes.
*/ */
template <typename... T> class CompoundSource: template <typename... T> class CompoundSource:
public Outputs::Speaker::BufferSource<CompoundSource<T...>, ::Outputs::Speaker::is_stereo<T...>()> { public Outputs::Speaker::BufferSource<CompoundSource<T...>, ::Outputs::Speaker::is_stereo<T...>()>
private: {
private:
template <typename... S> class CompoundSourceHolder { template <typename... S> class CompoundSourceHolder {
public: public:
static constexpr bool is_stereo = false; static constexpr bool is_stereo = false;
@ -121,7 +122,7 @@ template <typename... T> class CompoundSource:
std::vector<MonoSample> conversion_source_; std::vector<MonoSample> conversion_source_;
}; };
public: public:
using Sample = typename SampleT<::Outputs::Speaker::is_stereo<T...>()>::type; using Sample = typename SampleT<::Outputs::Speaker::is_stereo<T...>()>::type;
// To ensure at most one mono to stereo conversion, require appropriate source ordering. // To ensure at most one mono to stereo conversion, require appropriate source ordering.
@ -168,7 +169,7 @@ template <typename... T> class CompoundSource:
return average_output_peak_; return average_output_peak_;
} }
private: private:
void push_volumes() { void push_volumes() {
const double scale = source_holder_.total_scale(volumes_.data()); const double scale = source_holder_.total_scale(volumes_.data());
source_holder_.set_scaled_volume_range(volume_range_, volumes_.data(), scale); source_holder_.set_scaled_volume_range(volume_range_, volumes_.data(), scale);

View File

@ -23,7 +23,7 @@
namespace Outputs::Speaker { namespace Outputs::Speaker {
template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker { template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker {
public: public:
/*! /*!
Sets the clock rate of the input audio. Sets the clock rate of the input audio.
*/ */
@ -52,7 +52,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
filter_parameters_.parameters_are_dirty = true; filter_parameters_.parameters_are_dirty = true;
} }
private: private:
float get_ideal_clock_rate_in_range(float minimum, float maximum) final { float get_ideal_clock_rate_in_range(float minimum, float maximum) final {
std::lock_guard lock_guard(filter_parameters_mutex_); std::lock_guard lock_guard(filter_parameters_mutex_);
@ -237,7 +237,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
return filter_parameters.input_rate_changed; return filter_parameters.input_rate_changed;
} }
protected: protected:
bool process(size_t length) { bool process(size_t length) {
const auto delegate = delegate_.load(std::memory_order_relaxed); const auto delegate = delegate_.load(std::memory_order_relaxed);
if(!delegate) return false; if(!delegate) return false;
@ -294,7 +294,7 @@ template <typename ConcreteT, bool is_stereo> class LowpassBase: public Speaker
Provides a low-pass speaker to which blocks of samples are pushed. Provides a low-pass speaker to which blocks of samples are pushed.
*/ */
template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_stereo>, is_stereo> { template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_stereo>, is_stereo> {
private: private:
using BaseT = LowpassBase<PushLowpass<is_stereo>, is_stereo>; using BaseT = LowpassBase<PushLowpass<is_stereo>, is_stereo>;
friend BaseT; friend BaseT;
using BaseT::process; using BaseT::process;
@ -316,7 +316,7 @@ template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_s
buffer_ += word_length; buffer_ += word_length;
} }
public: public:
void set_output_volume(float volume) final { void set_output_volume(float volume) final {
scale_.store(int(std::clamp(volume * 65536.0f, 0.0f, 65536.0f))); scale_.store(int(std::clamp(volume * 65536.0f, 0.0f, 65536.0f)));
} }
@ -350,7 +350,7 @@ template <bool is_stereo> class PushLowpass: public LowpassBase<PushLowpass<is_s
lower-frequency output. lower-frequency output.
*/ */
template <typename SampleSource> class PullLowpass: public LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo> { template <typename SampleSource> class PullLowpass: public LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo> {
public: public:
PullLowpass(SampleSource &sample_source) : sample_source_(sample_source) { PullLowpass(SampleSource &sample_source) : sample_source_(sample_source) {
// Propagate an initial volume level. // Propagate an initial volume level.
sample_source.set_sample_volume_range(32767); sample_source.set_sample_volume_range(32767);
@ -381,7 +381,7 @@ template <typename SampleSource> class PullLowpass: public LowpassBase<PullLowpa
}); });
} }
private: private:
using BaseT = LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo>; using BaseT = LowpassBase<PullLowpass<SampleSource>, SampleSource::is_stereo>;
friend BaseT; friend BaseT;
using BaseT::process; using BaseT::process;

View File

@ -61,7 +61,7 @@ template <bool stereo> struct SampleT {
audio output. audio output.
*/ */
class Speaker { class Speaker {
public: public:
virtual ~Speaker() = default; virtual ~Speaker() = default;
/*! /*!
@ -136,7 +136,7 @@ class Speaker {
// This is primarily exposed for MultiSpeaker et al; it's not for general callers. // This is primarily exposed for MultiSpeaker et al; it's not for general callers.
virtual void set_computed_output_rate(float cycles_per_second, int buffer_size, bool stereo) = 0; virtual void set_computed_output_rate(float cycles_per_second, int buffer_size, bool stereo) = 0;
protected: protected:
void did_complete_samples(Speaker *, const std::vector<int16_t> &buffer, bool is_stereo) { void did_complete_samples(Speaker *, const std::vector<int16_t> &buffer, bool is_stereo) {
// Test the delegate for existence again, as it may have changed. // Test the delegate for existence again, as it may have changed.
const auto delegate = delegate_.load(std::memory_order_relaxed); const auto delegate = delegate_.load(std::memory_order_relaxed);
@ -170,7 +170,7 @@ class Speaker {
} }
std::atomic<Delegate *> delegate_{nullptr}; std::atomic<Delegate *> delegate_{nullptr};
private: private:
void compute_output_rate() { void compute_output_rate() {
// The input rate multiplier is actually used as an output rate divider, // The input rate multiplier is actually used as an output rate divider,
// to confirm to the public interface of a generic speaker being output-centric. // to confirm to the public interface of a generic speaker being output-centric.

View File

@ -142,7 +142,7 @@ class ProcessorBase: public ProcessorStorage {
can produce a minor runtime performance improvement. can produce a minor runtime performance improvement.
*/ */
template <Personality personality, typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase { template <Personality personality, typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase {
public: public:
/*! /*!
Constructs an instance of the 6502 that will use @c bus_handler for all bus communications. Constructs an instance of the 6502 that will use @c bus_handler for all bus communications.
*/ */
@ -162,7 +162,7 @@ template <Personality personality, typename BusHandler, bool uses_ready_line> cl
*/ */
void set_ready_line(bool active); void set_ready_line(bool active);
private: private:
BusHandler &bus_handler_; BusHandler &bus_handler_;
}; };

View File

@ -28,7 +28,7 @@ using Type = CPU::MOS6502Esque::Type;
template <Type type, bool has_cias> class ConcreteAllRAMProcessor: template <Type type, bool has_cias> class ConcreteAllRAMProcessor:
public AllRAMProcessor, public CPU::MOS6502Esque::BusHandlerT<type> public AllRAMProcessor, public CPU::MOS6502Esque::BusHandlerT<type>
{ {
public: public:
using typename CPU::MOS6502Esque::BusHandlerT<type>::AddressType; using typename CPU::MOS6502Esque::BusHandlerT<type>::AddressType;
ConcreteAllRAMProcessor(size_t memory_size) : ConcreteAllRAMProcessor(size_t memory_size) :
@ -145,7 +145,7 @@ template <Type type, bool has_cias> class ConcreteAllRAMProcessor:
mos6502_.set_value_of(r, value); mos6502_.set_value_of(r, value);
} }
private: private:
CPU::MOS6502Esque::Processor<type, ConcreteAllRAMProcessor, false> mos6502_; CPU::MOS6502Esque::Processor<type, ConcreteAllRAMProcessor, false> mos6502_;
int instructions_ = 0; int instructions_ = 0;

View File

@ -34,7 +34,7 @@ enum ExtendedBusOutput {
#include "Implementation/65816Storage.hpp" #include "Implementation/65816Storage.hpp"
class ProcessorBase: protected ProcessorStorage { class ProcessorBase: protected ProcessorStorage {
public: public:
inline void set_power_on(bool); inline void set_power_on(bool);
inline void set_irq_line(bool); inline void set_irq_line(bool);
inline void set_nmi_line(bool); inline void set_nmi_line(bool);
@ -64,7 +64,7 @@ class ProcessorBase: protected ProcessorStorage {
}; };
template <typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase { template <typename BusHandler, bool uses_ready_line> class Processor: public ProcessorBase {
public: public:
/*! /*!
Constructs an instance of the 6502 that will use @c bus_handler for all bus communications. Constructs an instance of the 6502 that will use @c bus_handler for all bus communications.
*/ */
@ -75,7 +75,7 @@ template <typename BusHandler, bool uses_ready_line> class Processor: public Pro
@param cycles The number of cycles to run the 6502 for. @param cycles The number of cycles to run the 6502 for.
*/ */
void run_for(const Cycles cycles); void run_for(const Cycles);
/*! /*!
Sets the current level of the RDY line. Sets the current level of the RDY line.
@ -84,7 +84,7 @@ template <typename BusHandler, bool uses_ready_line> class Processor: public Pro
*/ */
void set_ready_line(bool active); void set_ready_line(bool active);
private: private:
BusHandler &bus_handler_; BusHandler &bus_handler_;
}; };

View File

@ -108,7 +108,7 @@ struct CPU::WDC65816::ProcessorStorageConstructor {
storage_.micro_ops_.push_back(OperationDecode); storage_.micro_ops_.push_back(OperationDecode);
} }
private: private:
PatternTable::iterator install(Generator generator, AccessType access_type = AccessType::Read) { PatternTable::iterator install(Generator generator, AccessType access_type = AccessType::Read) {
// Check whether this access type + addressing mode generator has already been generated. // Check whether this access type + addressing mode generator has already been generated.

View File

@ -438,7 +438,7 @@ namespace CPU::MC68000 {
*/ */
template <class BusHandler, bool dtack_is_implicit = true, bool permit_overrun = true, bool signal_will_perform = false> template <class BusHandler, bool dtack_is_implicit = true, bool permit_overrun = true, bool signal_will_perform = false>
class Processor: private ProcessorBase { class Processor: private ProcessorBase {
public: public:
Processor(BusHandler &bus_handler) : ProcessorBase(), bus_handler_(bus_handler) {} Processor(BusHandler &bus_handler) : ProcessorBase(), bus_handler_(bus_handler) {}
Processor(const Processor& rhs) = delete; Processor(const Processor& rhs) = delete;
Processor& operator=(const Processor& rhs) = delete; Processor& operator=(const Processor& rhs) = delete;
@ -491,7 +491,7 @@ class Processor: private ProcessorBase {
void reset(); void reset();
private: private:
BusHandler &bus_handler_; BusHandler &bus_handler_;
}; };

View File

@ -17,7 +17,7 @@
namespace CPU { namespace CPU {
class AllRAMProcessor { class AllRAMProcessor {
public: public:
AllRAMProcessor(std::size_t memory_size); AllRAMProcessor(std::size_t memory_size);
HalfCycles get_timestamp(); HalfCycles get_timestamp();
void set_data_at_address(size_t startAddress, size_t length, const uint8_t *data); void set_data_at_address(size_t startAddress, size_t length, const uint8_t *data);
@ -30,7 +30,7 @@ class AllRAMProcessor {
void set_trap_handler(TrapHandler *trap_handler); void set_trap_handler(TrapHandler *trap_handler);
void add_trap_address(uint16_t address); void add_trap_address(uint16_t address);
protected: protected:
std::vector<uint8_t> memory_; std::vector<uint8_t> memory_;
HalfCycles timestamp_; HalfCycles timestamp_;
@ -40,7 +40,7 @@ class AllRAMProcessor {
} }
} }
private: private:
TrapHandler *trap_handler_; TrapHandler *trap_handler_;
std::vector<bool> traps_; std::vector<bool> traps_;
}; };

View File

@ -376,7 +376,7 @@ struct PartialMachineCycle {
} }
PartialMachineCycle(const PartialMachineCycle &rhs) noexcept; PartialMachineCycle(const PartialMachineCycle &rhs) noexcept;
PartialMachineCycle(Operation operation, HalfCycles length, uint16_t *address, uint8_t *value, bool was_requested) noexcept; PartialMachineCycle(Operation, HalfCycles, uint16_t *address, uint8_t *value, bool was_requested) noexcept;
PartialMachineCycle() noexcept; PartialMachineCycle() noexcept;
}; };
@ -386,7 +386,7 @@ struct PartialMachineCycle {
handler. handler.
*/ */
class BusHandler { class BusHandler {
public: public:
/*! /*!
Announces that the Z80 has performed the partial machine cycle defined by @c cycle. Announces that the Z80 has performed the partial machine cycle defined by @c cycle.
@ -395,7 +395,7 @@ class BusHandler {
during some periods or may impose wait states so predictably that it's more efficient just to add them during some periods or may impose wait states so predictably that it's more efficient just to add them
via this mechanism. via this mechanism.
*/ */
HalfCycles perform_machine_cycle([[maybe_unused]] const PartialMachineCycle &cycle) { HalfCycles perform_machine_cycle([[maybe_unused]] const PartialMachineCycle &) {
return HalfCycles(0); return HalfCycles(0);
} }
}; };
@ -406,7 +406,7 @@ class BusHandler {
A base class from which the Z80 descends; separated for implementation reasons only. A base class from which the Z80 descends; separated for implementation reasons only.
*/ */
class ProcessorBase: public ProcessorStorage { class ProcessorBase: public ProcessorStorage {
public: public:
/*! /*!
Gets the value of a register. Gets the value of a register.
@ -439,7 +439,7 @@ class ProcessorBase: public ProcessorStorage {
how many cycles before now the line changed state. The value may not be longer than the how many cycles before now the line changed state. The value may not be longer than the
current machine cycle. If called at any other time, this must be zero. current machine cycle. If called at any other time, this must be zero.
*/ */
inline void set_interrupt_line(bool value, HalfCycles offset = 0); inline void set_interrupt_line(bool, HalfCycles offset = 0);
/*! /*!
Gets the value of the interrupt line. Gets the value of the interrupt line.
@ -451,7 +451,7 @@ class ProcessorBase: public ProcessorStorage {
@param offset See discussion in set_interrupt_line. @param offset See discussion in set_interrupt_line.
*/ */
inline void set_non_maskable_interrupt_line(bool value, HalfCycles offset = 0); inline void set_non_maskable_interrupt_line(bool, HalfCycles offset = 0);
/*! /*!
Gets the value of the non-maskable interrupt line. Gets the value of the non-maskable interrupt line.
@ -461,7 +461,7 @@ class ProcessorBase: public ProcessorStorage {
/*! /*!
Sets the logical value of the reset line. Sets the logical value of the reset line.
*/ */
inline void set_reset_line(bool value); inline void set_reset_line(bool);
/*! /*!
Gets whether the Z80 would reset at the next opportunity. Gets whether the Z80 would reset at the next opportunity.
@ -493,7 +493,7 @@ class ProcessorBase: public ProcessorStorage {
support either can produce a minor runtime performance improvement. support either can produce a minor runtime performance improvement.
*/ */
template <class T, bool uses_bus_request, bool uses_wait_line> class Processor: public ProcessorBase { template <class T, bool uses_bus_request, bool uses_wait_line> class Processor: public ProcessorBase {
public: public:
Processor(T &bus_handler); Processor(T &bus_handler);
/*! /*!
@ -505,12 +505,12 @@ template <class T, bool uses_bus_request, bool uses_wait_line> class Processor:
@param cycles The number of cycles to run for. @param cycles The number of cycles to run for.
*/ */
void run_for(const HalfCycles cycles); void run_for(const HalfCycles);
/*! /*!
Sets the logical value of the bus request line, having asserted that this Z80 supports the bus request line. Sets the logical value of the bus request line, having asserted that this Z80 supports the bus request line.
*/ */
void set_bus_request_line(bool value); void set_bus_request_line(bool);
/*! /*!
Gets the logical value of the bus request line. Gets the logical value of the bus request line.
@ -520,17 +520,17 @@ template <class T, bool uses_bus_request, bool uses_wait_line> class Processor:
/*! /*!
Sets the logical value of the wait line, having asserted that this Z80 supports the wait line. Sets the logical value of the wait line, having asserted that this Z80 supports the wait line.
*/ */
void set_wait_line(bool value); void set_wait_line(bool);
/*! /*!
Gets the logical value of the bus request line. Gets the logical value of the bus request line.
*/ */
bool get_wait_line() const; bool get_wait_line() const;
private: private:
T &bus_handler_; T &bus_handler_;
void assemble_page(InstructionPage &target, InstructionTable &table, bool add_offsets); void assemble_page(InstructionPage &, InstructionTable &, bool add_offsets);
void copy_program(const MicroOp *source, std::vector<MicroOp> &destination); void copy_program(const MicroOp *source, std::vector<MicroOp> &destination);
}; };