Add soft reset for the Thomson machines.
This commit is contained in:
1 parent
c50afffd5d
commit
0d5dead5f4
2 files changed
+24
-1
No files matched your search
@@ -63,8 +63,9 @@ struct ConcreteMachine:
|
||||
public MachineTypes::MappedKeyboardMachine,
|
||||
public MachineTypes::MediaChangeObserver,
|
||||
public MachineTypes::MediaTarget,
|
||||
public MachineTypes::TimedMachine,
|
||||
public MachineTypes::SoftResettable,
|
||||
public MachineTypes::ScanProducer,
|
||||
public MachineTypes::TimedMachine,
|
||||
public Machine,
|
||||
public Utility::TypeRecipient<Thomson::MO::Keyboard::CharacterMapper>
|
||||
{
|
||||
@@ -620,6 +621,13 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Resettable.
|
||||
|
||||
void soft_reset() final {
|
||||
m6809_.template set<CPU::M6809::Line::PowerOnReset>(true);
|
||||
memory_.reset();
|
||||
}
|
||||
|
||||
// MARK: - MappedKeyboardMachine.
|
||||
|
||||
Thomson::MO::Keyboard::KeyboardMapper keyboard_mapper_;
|
||||
|
||||
@@ -135,6 +135,21 @@ public:
|
||||
Memory::Fuzz(video_);
|
||||
}
|
||||
|
||||
void reset() {
|
||||
page_video(false);
|
||||
|
||||
cartridge_page_ = 0;
|
||||
cartridge_page_ = 0;
|
||||
rom_page_ = 0;
|
||||
ram_page_ = 1;
|
||||
basic_selection_ = false;
|
||||
b000page_ = B000Page::Empty;
|
||||
|
||||
access_mode_ = AccessMode::LightPen;
|
||||
update_commutable_ram();
|
||||
update_commutable_rom();
|
||||
}
|
||||
|
||||
// MARK: - ROM installation and connection for video.
|
||||
|
||||
void set_rom(const std::vector<uint8_t> &rom) {
|
||||
|
||||
Reference in new issue
Block a user