diff --git a/Components/AY38910/AY38910.cpp b/Components/AY38910/AY38910.cpp index 85d8d5f21..cb862cd0e 100644 --- a/Components/AY38910/AY38910.cpp +++ b/Components/AY38910/AY38910.cpp @@ -10,16 +10,7 @@ using namespace GI::AY38910; -AY38910::AY38910() : - selected_register_(0), - tone_counters_{0, 0, 0}, tone_periods_{0, 0, 0}, tone_outputs_{0, 0, 0}, - noise_shift_register_(0xffff), noise_period_(0), noise_counter_(0), noise_output_(0), - envelope_divider_(0), envelope_period_(0), envelope_position_(0), - master_divider_(0), - output_registers_{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - port_handler_(nullptr) { - output_registers_[8] = output_registers_[9] = output_registers_[10] = 0; - +AY38910::AY38910() { // set up envelope lookup tables for(int c = 0; c < 16; c++) { for(int p = 0; p < 32; p++) { diff --git a/Components/AY38910/AY38910.hpp b/Components/AY38910/AY38910.hpp index d02aff8cd..1dcd6c6f0 100644 --- a/Components/AY38910/AY38910.hpp +++ b/Components/AY38910/AY38910.hpp @@ -89,24 +89,25 @@ class AY38910: public ::Outputs::Filter { void get_samples(unsigned int number_of_samples, int16_t *target); private: - int selected_register_; - uint8_t registers_[16], output_registers_[16]; + int selected_register_ = 0; + uint8_t registers_[16]; + uint8_t output_registers_[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; uint8_t port_inputs_[2]; - int master_divider_; + int master_divider_ = 0; - int tone_periods_[3]; - int tone_counters_[3]; - int tone_outputs_[3]; + int tone_periods_[3] = {0, 0, 0}; + int tone_counters_[3] = {0, 0, 0}; + int tone_outputs_[3] = {0, 0, 0}; - int noise_period_; - int noise_counter_; - int noise_shift_register_; - int noise_output_; + int noise_period_ = 0; + int noise_counter_ = 0; + int noise_shift_register_ = 0xffff; + int noise_output_ = 0; - int envelope_period_; - int envelope_divider_; - int envelope_position_; + int envelope_period_ = 0; + int envelope_divider_ = 0; + int envelope_position_ = 0; int envelope_shapes_[16][32]; int envelope_overflow_masks_[16]; @@ -129,7 +130,7 @@ class AY38910: public ::Outputs::Filter { inline void evaluate_output_volume(); inline void update_bus(); - PortHandler *port_handler_; + PortHandler *port_handler_ = nullptr; }; } diff --git a/Machines/Commodore/1540/Implementation/C1540.cpp b/Machines/Commodore/1540/Implementation/C1540.cpp index 48567adb1..a3f32869f 100644 --- a/Machines/Commodore/1540/Implementation/C1540.cpp +++ b/Machines/Commodore/1540/Implementation/C1540.cpp @@ -17,14 +17,13 @@ using namespace Commodore::C1540; MachineBase::MachineBase() : - m6502_(*this), - shift_register_(0), Storage::Disk::Controller(1000000), - serial_port_(new SerialPort), + m6502_(*this), + drive_(new Storage::Disk::Drive(1000000, 300, 2)), serial_port_VIA_port_handler_(new SerialPortVIA(serial_port_VIA_)), + serial_port_(new SerialPort), drive_VIA_(drive_VIA_port_handler_), - serial_port_VIA_(*serial_port_VIA_port_handler_), - drive_(new Storage::Disk::Drive(1000000, 300, 2)) { + serial_port_VIA_(*serial_port_VIA_port_handler_) { // attach the serial port to its VIA and vice versa serial_port_->set_serial_port_via(serial_port_VIA_port_handler_); serial_port_VIA_port_handler_->set_serial_port(serial_port_); diff --git a/Machines/Commodore/1540/Implementation/C1540Base.hpp b/Machines/Commodore/1540/Implementation/C1540Base.hpp index ab776898d..ed8384a60 100644 --- a/Machines/Commodore/1540/Implementation/C1540Base.hpp +++ b/Machines/Commodore/1540/Implementation/C1540Base.hpp @@ -147,7 +147,7 @@ class MachineBase: MOS::MOS6522::MOS6522 drive_VIA_; MOS::MOS6522::MOS6522 serial_port_VIA_; - int shift_register_, bit_window_offset_; + int shift_register_ = 0, bit_window_offset_; virtual void process_input_bit(int value); virtual void process_index_hole(); }; diff --git a/Machines/ZX8081/ZX8081.cpp b/Machines/ZX8081/ZX8081.cpp index e587f4561..55a96108b 100644 --- a/Machines/ZX8081/ZX8081.cpp +++ b/Machines/ZX8081/ZX8081.cpp @@ -36,13 +36,7 @@ template class ConcreteMachine: public: ConcreteMachine() : z80_(*this), - vsync_(false), - hsync_(false), - nmi_is_enabled_(false), - tape_player_(ZX8081ClockRate), - use_fast_tape_hack_(false), - tape_advance_delay_(0), - has_latched_video_byte_(false) { + tape_player_(ZX8081ClockRate) { set_clock_rate(ZX8081ClockRate); clear_all_keys(); } @@ -367,8 +361,8 @@ template class ConcreteMachine: std::vector rom_; uint16_t rom_mask_; - bool vsync_, hsync_; - int line_counter_; + bool vsync_ = false, hsync_ = false; + int line_counter_ = 0; uint8_t key_states_[8]; ZX8081::KeyboardMapper keyboard_mapper_; @@ -377,17 +371,17 @@ template class ConcreteMachine: Storage::Tape::ZX8081::Parser parser_; bool is_zx81_; - bool nmi_is_enabled_; + bool nmi_is_enabled_ = false; HalfCycles vsync_start_, vsync_end_; HalfCycles horizontal_counter_; - uint8_t latched_video_byte_; - bool has_latched_video_byte_; + uint8_t latched_video_byte_ = 0; + bool has_latched_video_byte_ = false; - bool use_fast_tape_hack_; + bool use_fast_tape_hack_ = false; bool use_automatic_tape_motor_control_; - HalfCycles tape_advance_delay_; + HalfCycles tape_advance_delay_ = 0; #pragma mark - Video