From 24b281d62565084a60bfef511988dda118b05dc8 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 30 Dec 2024 09:14:27 -0500 Subject: [PATCH] Use namespace; attempt to avoid false characters. --- Machines/Commodore/Plus4/Plus4.cpp | 38 ++++++++++++++---------------- Machines/Commodore/Plus4/Video.hpp | 6 +++-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Machines/Commodore/Plus4/Plus4.cpp b/Machines/Commodore/Plus4/Plus4.cpp index 39d597821..fa9095353 100644 --- a/Machines/Commodore/Plus4/Plus4.cpp +++ b/Machines/Commodore/Plus4/Plus4.cpp @@ -22,6 +22,7 @@ #include "../SerialBus.hpp" #include "../1540/C1540.hpp" +using namespace Commodore; using namespace Commodore::Plus4; namespace { @@ -102,18 +103,18 @@ private: Interrupts &interrupts_; }; -class SerialPort: public Commodore::Serial::Port { +class SerialPort: public Serial::Port { public: - void set_input(Commodore::Serial::Line line, Commodore::Serial::LineLevel value) override { + void set_input(const Serial::Line line, const Serial::LineLevel value) override { levels_[size_t(line)] = value; } - Commodore::Serial::LineLevel level(Commodore::Serial::Line line) const { + Serial::LineLevel level(const Serial::Line line) const { return levels_[size_t(line)]; } private: - Commodore::Serial::LineLevel levels_[5]; + Serial::LineLevel levels_[5]; }; class ConcreteMachine: @@ -143,7 +144,7 @@ public: const auto basic = ROM::Name::Plus4BASIC; ROM::Request request = ROM::Request(basic) && ROM::Request(kernel); if(has_c1541) { - request = request && Commodore::C1540::Machine::rom_request(Commodore::C1540::Personality::C1541); + request = request && C1540::Machine::rom_request(C1540::Personality::C1541); } auto roms = rom_fetcher(request); @@ -161,9 +162,9 @@ public: video_map_.page(ram_.data()); if(has_c1541) { - c1541_ = std::make_unique(Commodore::C1540::Personality::C1541, roms); + c1541_ = std::make_unique(C1540::Personality::C1541, roms); c1541_->set_serial_bus(serial_bus_); - Commodore::Serial::attach(serial_port_, serial_bus_); + Serial::attach(serial_port_, serial_bus_); } tape_player_ = std::make_unique(clock); @@ -217,8 +218,8 @@ public: } else { const uint8_t all_inputs = (tape_player_->input() ? 0x10 : 0x00) | - (serial_port_.level(Commodore::Serial::Line::Data) ? 0x80 : 0x00) | - (serial_port_.level(Commodore::Serial::Line::Clock) ? 0x40 : 0x00); + (serial_port_.level(Serial::Line::Data) ? 0x80 : 0x00) | + (serial_port_.level(Serial::Line::Clock) ? 0x40 : 0x00); *value = (io_direction_ & io_output_) | (~io_direction_ & all_inputs); @@ -232,12 +233,9 @@ public: const auto output = io_output_ | ~io_direction_; // tape_player_->set_motor_control(~output & 0x08); - serial_port_.set_output( - Commodore::Serial::Line::Data, Commodore::Serial::LineLevel(~output & 0x01)); - serial_port_.set_output( - Commodore::Serial::Line::Clock, Commodore::Serial::LineLevel(~output & 0x02)); - serial_port_.set_output( - Commodore::Serial::Line::Attention, Commodore::Serial::LineLevel(~output & 0x04)); + serial_port_.set_output(Serial::Line::Data, Serial::LineLevel(~output & 0x01)); + serial_port_.set_output(Serial::Line::Clock, Serial::LineLevel(~output & 0x02)); + serial_port_.set_output(Serial::Line::Attention, Serial::LineLevel(~output & 0x04)); } // printf("%04x: %02x %c\n", address, *value, isReadOperation(operation) ? 'r' : 'w'); @@ -425,8 +423,8 @@ private: return true; } - Commodore::Plus4::Pager map_; - Commodore::Plus4::Pager video_map_; + Plus4::Pager map_; + Plus4::Pager video_map_; std::array ram_; std::vector kernel_; std::vector basic_; @@ -439,7 +437,7 @@ private: // MARK: - MappedKeyboardMachine. MappedKeyboardMachine::KeyboardMapper *get_keyboard_mapper() override { - static Commodore::Plus4::KeyboardMapper keyboard_mapper_; + static Plus4::KeyboardMapper keyboard_mapper_; return &keyboard_mapper_; } @@ -455,8 +453,8 @@ private: uint8_t keyboard_latch_ = 0xff; Cycles media_divider_, c1541_cycles_; - std::unique_ptr c1541_; - Commodore::Serial::Bus serial_bus_; + std::unique_ptr c1541_; + Serial::Bus serial_bus_; SerialPort serial_port_; std::unique_ptr tape_player_; diff --git a/Machines/Commodore/Plus4/Video.hpp b/Machines/Commodore/Plus4/Video.hpp index 300737b61..40ff1c558 100644 --- a/Machines/Commodore/Plus4/Video.hpp +++ b/Machines/Commodore/Plus4/Video.hpp @@ -295,7 +295,7 @@ public: // Current thinking: these should probably go afterwards, with an equivalent of pixelshiftreg // adding further delay? next_attribute_.write(shifter_.read<1>()); - next_character_.write(shifter_.read<0>()); + if(!bad_line()) next_character_.write(shifter_.read<0>()); next_cursor_.write( (flash_count_ & 0x10) && ( @@ -317,7 +317,9 @@ public: if(bad_line2_) { shifter_.write<1>(pager_.read(address)); } else { - shifter_.write<0>(pager_.read(address + 0x400)); + const auto data = pager_.read(address + 0x400); + shifter_.write<0>(data); + if(bad_line()) next_character_.write(data); } }