mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-07 23:25:00 +00:00
Further qmake warning corrections.
This commit is contained in:
@@ -18,6 +18,11 @@ NCR5380::NCR5380(SCSI::Bus &bus, int clock_rate) :
|
|||||||
clock_rate_(clock_rate) {
|
clock_rate_(clock_rate) {
|
||||||
device_id_ = bus_.add_device();
|
device_id_ = bus_.add_device();
|
||||||
bus_.add_observer(this);
|
bus_.add_observer(this);
|
||||||
|
|
||||||
|
// TODO: use clock rate and expected phase. This implementation currently
|
||||||
|
// provides only CPU-driven polling behaviour.
|
||||||
|
(void)clock_rate_;
|
||||||
|
(void)expected_phase_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NCR5380::write(int address, uint8_t value, bool) {
|
void NCR5380::write(int address, uint8_t value, bool) {
|
||||||
|
@@ -80,6 +80,10 @@ i8272::i8272(BusHandler &bus_handler, Cycles clock_rate) :
|
|||||||
Storage::Disk::MFMController(clock_rate),
|
Storage::Disk::MFMController(clock_rate),
|
||||||
bus_handler_(bus_handler) {
|
bus_handler_(bus_handler) {
|
||||||
posit_event(int(Event8272::CommandByte));
|
posit_event(int(Event8272::CommandByte));
|
||||||
|
|
||||||
|
// TODO: implement DMA, etc. I have a vague intention to implement the IBM PC
|
||||||
|
// one day, that should help to force that stuff.
|
||||||
|
(void)bus_handler_;
|
||||||
}
|
}
|
||||||
|
|
||||||
ClockingHint::Preference i8272::preferred_clocking() const {
|
ClockingHint::Preference i8272::preferred_clocking() const {
|
||||||
|
@@ -46,8 +46,8 @@ class i8272 : public Storage::Disk::MFMController {
|
|||||||
virtual void select_drive(int number) = 0;
|
virtual void select_drive(int number) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The bus handler, for interrupt and DMA-driven usage.
|
// The bus handler, for interrupt and DMA-driven usage. [TODO]
|
||||||
BusHandler &bus_handler_;
|
BusHandler &bus_handler_;
|
||||||
std::unique_ptr<BusHandler> allocated_bus_handler_;
|
std::unique_ptr<BusHandler> allocated_bus_handler_;
|
||||||
|
|
||||||
// Status registers.
|
// Status registers.
|
||||||
|
@@ -82,8 +82,9 @@ class IWM:
|
|||||||
|
|
||||||
uint8_t data_register_ = 0;
|
uint8_t data_register_ = 0;
|
||||||
uint8_t mode_ = 0;
|
uint8_t mode_ = 0;
|
||||||
bool read_write_ready_ = true;
|
// These related to functionality not-yet implemented.
|
||||||
bool write_overran_ = false;
|
// bool read_write_ready_ = true;
|
||||||
|
// bool write_overran_ = false;
|
||||||
|
|
||||||
int state_ = 0;
|
int state_ = 0;
|
||||||
|
|
||||||
|
@@ -804,7 +804,7 @@ template <Analyser::Static::AppleII::Target::Model model> class ConcreteMachine:
|
|||||||
m6502_.run_for(cycles);
|
m6502_.run_for(cycles);
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_all_keys() final {
|
void reset_all_keys(Inputs::Keyboard *) final {
|
||||||
open_apple_is_pressed_ = closed_apple_is_pressed_ = key_is_down_ = false;
|
open_apple_is_pressed_ = closed_apple_is_pressed_ = key_is_down_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -93,7 +93,6 @@ class VideoOutput {
|
|||||||
inline void setup_base_address();
|
inline void setup_base_address();
|
||||||
|
|
||||||
int output_position_ = 0;
|
int output_position_ = 0;
|
||||||
int unused_cycles_ = 0;
|
|
||||||
|
|
||||||
uint8_t palette_[16];
|
uint8_t palette_[16];
|
||||||
uint8_t screen_mode_ = 6;
|
uint8_t screen_mode_ = 6;
|
||||||
|
@@ -55,10 +55,8 @@ class CRT {
|
|||||||
};
|
};
|
||||||
void output_scan(const Scan *scan);
|
void output_scan(const Scan *scan);
|
||||||
|
|
||||||
int16_t colour_burst_angle_ = 0;
|
|
||||||
uint8_t colour_burst_amplitude_ = 30;
|
uint8_t colour_burst_amplitude_ = 30;
|
||||||
int colour_burst_phase_adjustment_ = 0xff;
|
int colour_burst_phase_adjustment_ = 0xff;
|
||||||
bool is_writing_composite_run_ = false;
|
|
||||||
|
|
||||||
int64_t phase_denominator_ = 1;
|
int64_t phase_denominator_ = 1;
|
||||||
int64_t phase_numerator_ = 0;
|
int64_t phase_numerator_ = 0;
|
||||||
|
@@ -286,7 +286,7 @@ class ProcessorStorage {
|
|||||||
bool nmi_line_is_enabled_ = false, set_overflow_line_is_enabled_ = false;
|
bool nmi_line_is_enabled_ = false, set_overflow_line_is_enabled_ = false;
|
||||||
|
|
||||||
// Allow state objects to capture and apply state.
|
// Allow state objects to capture and apply state.
|
||||||
friend class State;
|
friend struct State;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _502Storage_h */
|
#endif /* _502Storage_h */
|
||||||
|
@@ -545,9 +545,9 @@ class ProcessorStorage {
|
|||||||
inline void set_status(uint16_t);
|
inline void set_status(uint16_t);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class ProcessorStorageConstructor;
|
friend struct ProcessorStorageConstructor;
|
||||||
friend class ProcessorStorageTests;
|
friend class ProcessorStorageTests;
|
||||||
friend class State;
|
friend struct State;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* MC68000Storage_h */
|
#endif /* MC68000Storage_h */
|
||||||
|
@@ -93,7 +93,7 @@ State::State(const ProcessorBase &src): State() {
|
|||||||
// Encode the BusStep.
|
// Encode the BusStep.
|
||||||
struct BusStepOption {
|
struct BusStepOption {
|
||||||
const ProcessorBase::BusStep *const base;
|
const ProcessorBase::BusStep *const base;
|
||||||
const ExecutionState::BusStepSource source;
|
const ExecutionState::BusStepSource source = ExecutionState::BusStepSource::FollowMicroOp;
|
||||||
};
|
};
|
||||||
BusStepOption bus_step_options[] = {
|
BusStepOption bus_step_options[] = {
|
||||||
{
|
{
|
||||||
|
@@ -358,7 +358,7 @@ std::vector<uint8_t> Reflection::Struct::serialise() const {
|
|||||||
};
|
};
|
||||||
|
|
||||||
auto append = [push_name, this] (std::vector<uint8_t> &result, const std::string &key, const std::string &output_name, const std::type_info *type, size_t offset) {
|
auto append = [push_name, this] (std::vector<uint8_t> &result, const std::string &key, const std::string &output_name, const std::type_info *type, size_t offset) {
|
||||||
auto push_int = [push_name, &result, &output_name] (auto x) {
|
auto push_int = [&result] (auto x) {
|
||||||
for(size_t c = 0; c < sizeof(x); ++c)
|
for(size_t c = 0; c < sizeof(x); ++c)
|
||||||
result.push_back(uint8_t((x) >> (8 * c)));
|
result.push_back(uint8_t((x) >> (8 * c)));
|
||||||
};
|
};
|
||||||
|
@@ -179,6 +179,7 @@ class TrackConstructor {
|
|||||||
|
|
||||||
TrackConstructor(const std::vector<uint8_t> &track_data, const std::vector<Sector> §ors, size_t track_size, uint16_t first_sync) :
|
TrackConstructor(const std::vector<uint8_t> &track_data, const std::vector<Sector> §ors, size_t track_size, uint16_t first_sync) :
|
||||||
track_data_(track_data), sectors_(sectors), track_size_(track_size), first_sync_(first_sync) {
|
track_data_(track_data), sectors_(sectors), track_size_(track_size), first_sync_(first_sync) {
|
||||||
|
(void)first_sync_;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<PCMTrack> get_track() {
|
std::shared_ptr<PCMTrack> get_track() {
|
||||||
@@ -383,8 +384,7 @@ class TrackConstructor {
|
|||||||
const std::vector<uint8_t> &track_data_;
|
const std::vector<uint8_t> &track_data_;
|
||||||
const std::vector<Sector> §ors_;
|
const std::vector<Sector> §ors_;
|
||||||
const size_t track_size_;
|
const size_t track_size_;
|
||||||
const uint16_t first_sync_;
|
const uint16_t first_sync_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -335,7 +335,7 @@ std::shared_ptr<Storage::Disk::Track> Storage::Encodings::MFM::GetFMTrackWithSec
|
|||||||
sector_pointers(sectors),
|
sector_pointers(sectors),
|
||||||
26, 0xff,
|
26, 0xff,
|
||||||
6,
|
6,
|
||||||
11, 0xff,
|
11, sector_gap_filler_byte,
|
||||||
6,
|
6,
|
||||||
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 27, 0xff,
|
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 27, 0xff,
|
||||||
6250); // i.e. 250kbps (including clocks) * 60 = 15000kpm, at 300 rpm => 50 kbits/rotation => 6250 bytes/rotation
|
6250); // i.e. 250kbps (including clocks) * 60 = 15000kpm, at 300 rpm => 50 kbits/rotation => 6250 bytes/rotation
|
||||||
@@ -346,7 +346,7 @@ std::shared_ptr<Storage::Disk::Track> Storage::Encodings::MFM::GetFMTrackWithSec
|
|||||||
sectors,
|
sectors,
|
||||||
26, 0xff,
|
26, 0xff,
|
||||||
6,
|
6,
|
||||||
11, 0xff,
|
11, sector_gap_filler_byte,
|
||||||
6,
|
6,
|
||||||
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 27, 0xff,
|
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 27, 0xff,
|
||||||
6250); // i.e. 250kbps (including clocks) * 60 = 15000kpm, at 300 rpm => 50 kbits/rotation => 6250 bytes/rotation
|
6250); // i.e. 250kbps (including clocks) * 60 = 15000kpm, at 300 rpm => 50 kbits/rotation => 6250 bytes/rotation
|
||||||
@@ -357,7 +357,7 @@ std::shared_ptr<Storage::Disk::Track> Storage::Encodings::MFM::GetMFMTrackWithSe
|
|||||||
sector_pointers(sectors),
|
sector_pointers(sectors),
|
||||||
50, 0x4e,
|
50, 0x4e,
|
||||||
12,
|
12,
|
||||||
22, 0x4e,
|
22, sector_gap_filler_byte,
|
||||||
12,
|
12,
|
||||||
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 54, 0xff,
|
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 54, 0xff,
|
||||||
12500); // unintelligently: double the single-density bytes/rotation (or: 500kbps @ 300 rpm)
|
12500); // unintelligently: double the single-density bytes/rotation (or: 500kbps @ 300 rpm)
|
||||||
@@ -368,7 +368,7 @@ std::shared_ptr<Storage::Disk::Track> Storage::Encodings::MFM::GetMFMTrackWithSe
|
|||||||
sectors,
|
sectors,
|
||||||
50, 0x4e,
|
50, 0x4e,
|
||||||
12,
|
12,
|
||||||
22, 0x4e,
|
22, sector_gap_filler_byte,
|
||||||
12,
|
12,
|
||||||
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 54, 0xff,
|
(sector_gap_length != DefaultSectorGapLength) ? sector_gap_length : 54, 0xff,
|
||||||
12500); // unintelligently: double the single-density bytes/rotation (or: 500kbps @ 300 rpm)
|
12500); // unintelligently: double the single-density bytes/rotation (or: 500kbps @ 300 rpm)
|
||||||
|
@@ -39,8 +39,8 @@ std::shared_ptr<Storage::Disk::Track> GetMFMTrackWithSectors(const std::vector<c
|
|||||||
@param sector_gap_length If specified, sets the distance in whole bytes between each ID and its data.
|
@param sector_gap_length If specified, sets the distance in whole bytes between each ID and its data.
|
||||||
@param sector_gap_filler_byte If specified, sets the value (unencoded) that is used to populate the gap between each ID and its data.
|
@param sector_gap_filler_byte If specified, sets the value (unencoded) that is used to populate the gap between each ID and its data.
|
||||||
*/
|
*/
|
||||||
std::shared_ptr<Storage::Disk::Track> GetFMTrackWithSectors(const std::vector<Sector> §ors, std::size_t sector_gap_length = DefaultSectorGapLength, uint8_t sector_gap_filler_byte = 0x4e);
|
std::shared_ptr<Storage::Disk::Track> GetFMTrackWithSectors(const std::vector<Sector> §ors, std::size_t sector_gap_length = DefaultSectorGapLength, uint8_t sector_gap_filler_byte = 0xff);
|
||||||
std::shared_ptr<Storage::Disk::Track> GetFMTrackWithSectors(const std::vector<const Sector *> §ors, std::size_t sector_gap_length = DefaultSectorGapLength, uint8_t sector_gap_filler_byte = 0x4e);
|
std::shared_ptr<Storage::Disk::Track> GetFMTrackWithSectors(const std::vector<const Sector *> §ors, std::size_t sector_gap_length = DefaultSectorGapLength, uint8_t sector_gap_filler_byte = 0xff);
|
||||||
|
|
||||||
class Encoder {
|
class Encoder {
|
||||||
public:
|
public:
|
||||||
|
@@ -48,7 +48,7 @@ class Parser: public Storage::Tape::PulseClassificationParser<WaveType, SymbolTy
|
|||||||
struct Pattern
|
struct Pattern
|
||||||
{
|
{
|
||||||
WaveType type;
|
WaveType type;
|
||||||
int count;
|
int count = 0;
|
||||||
};
|
};
|
||||||
std::size_t pattern_matching_depth(const std::vector<WaveType> &waves, const Pattern *pattern);
|
std::size_t pattern_matching_depth(const std::vector<WaveType> &waves, const Pattern *pattern);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user