1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-10-04 01:57:54 +00:00

Adds an unused CRT.

This commit is contained in:
Thomas Harte 2021-06-14 23:11:48 -04:00
parent f90dce5c54
commit 440b11708b
3 changed files with 28 additions and 3 deletions

View File

@ -224,11 +224,11 @@ class ConcreteMachine:
// MARK: - ScanProducer // MARK: - ScanProducer
void set_scan_target(Outputs::Display::ScanTarget *scan_target) override { void set_scan_target(Outputs::Display::ScanTarget *scan_target) override {
(void)scan_target; nick_.last_valid()->set_scan_target(scan_target);
} }
Outputs::Display::ScanStatus get_scaled_scan_status() const override { Outputs::Display::ScanStatus get_scaled_scan_status() const override {
return Outputs::Display::ScanStatus(); return nick_.last_valid()->get_scaled_scan_status();
} }
// MARK: - TimedMachine // MARK: - TimedMachine

View File

@ -12,6 +12,13 @@
using namespace Enterprise; using namespace Enterprise;
Nick::Nick() :
crt_(16 * 57, 16, Outputs::Display::Type::PAL50, Outputs::Display::InputDataType::Red4Green4Blue4) {
// Just use RGB for now.
crt_.set_display_type(Outputs::Display::DisplayType::RGB);
}
void Nick::write(uint16_t address, uint8_t value) { void Nick::write(uint16_t address, uint8_t value) {
switch(address & 3) { switch(address & 3) {
default: default:
@ -25,5 +32,14 @@ uint8_t Nick::read([[maybe_unused]] uint16_t address) {
} }
void Nick::run_for(HalfCycles) { void Nick::run_for(HalfCycles) {
}
// MARK: - CRT passthroughs.
void Nick::set_scan_target(Outputs::Display::ScanTarget *scan_target) {
crt_.set_scan_target(scan_target);
}
Outputs::Display::ScanStatus Nick::get_scaled_scan_status() const {
return crt_.get_scaled_scan_status();
} }

View File

@ -11,15 +11,24 @@
#include <cstdint> #include <cstdint>
#include "../../ClockReceiver/ClockReceiver.hpp" #include "../../ClockReceiver/ClockReceiver.hpp"
#include "../../Outputs/CRT/CRT.hpp"
namespace Enterprise { namespace Enterprise {
class Nick { class Nick {
public: public:
Nick();
void write(uint16_t address, uint8_t value); void write(uint16_t address, uint8_t value);
uint8_t read(uint16_t address); uint8_t read(uint16_t address);
void run_for(HalfCycles); void run_for(HalfCycles);
void set_scan_target(Outputs::Display::ScanTarget *scan_target);
Outputs::Display::ScanStatus get_scaled_scan_status() const;
private:
Outputs::CRT::CRT crt_;
}; };