1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-02-21 20:29:06 +00:00

Introduce a CRT.

This commit is contained in:
Thomas Harte 2024-12-11 21:38:32 -05:00
parent 389ba95e5a
commit 0eab6146fc
2 changed files with 16 additions and 2 deletions

View File

@ -230,11 +230,12 @@ public:
private:
CPU::MOS6502::Processor<CPU::MOS6502::Personality::P6502, ConcreteMachine, true> m6502_;
void set_scan_target(Outputs::Display::ScanTarget *const) final {
void set_scan_target(Outputs::Display::ScanTarget *const target) final {
video_.set_scan_target(target);
}
Outputs::Display::ScanStatus get_scaled_scan_status() const final {
return {};
return video_.get_scaled_scan_status();
}
void run_for(const Cycles cycles) final {

View File

@ -9,11 +9,14 @@
#pragma once
#include "../../../Numeric/UpperBound.hpp"
#include "../../../Outputs/CRT/CRT.hpp"
namespace Commodore::Plus4 {
struct Video {
public:
Video() : crt_(465, 1, Outputs::Display::Type::PAL50, Outputs::Display::InputDataType::Luminance8Phase8) {}
template <uint16_t address>
void write(const uint8_t value) {
const auto load_high10 = [&](uint16_t &target) {
@ -218,7 +221,17 @@ public:
}
}
void set_scan_target(Outputs::Display::ScanTarget *const target) {
crt_.set_scan_target(target);
}
Outputs::Display::ScanStatus get_scaled_scan_status() const {
return crt_.get_scaled_scan_status();
}
private:
Outputs::CRT::CRT crt_;
bool extended_colour_mode_ = false;
bool bitmap_mode_ = false;
bool display_enable_ = false;