mirror of
https://github.com/TomHarte/CLK.git
synced 2025-11-23 05:19:20 +00:00
Merge pull request #1627 from TomHarte/TubeReset
Propagate system reset to the tube.
This commit is contained in:
@@ -1091,7 +1091,7 @@ private:
|
||||
break;
|
||||
|
||||
case Key::Break:
|
||||
m6502_.template set<CPU::MOS6502Mk2::Line::Reset>(is_pressed);
|
||||
set_reset(is_pressed);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1102,10 +1102,18 @@ private:
|
||||
bool was_caps_ = false;
|
||||
|
||||
void clear_all_keys() final {
|
||||
m6502_.template set<CPU::MOS6502Mk2::Line::Reset>(false);
|
||||
set_reset(false);
|
||||
system_via_port_handler_.clear_all_keys();
|
||||
}
|
||||
|
||||
void set_reset(const bool reset) {
|
||||
m6502_.template set<CPU::MOS6502Mk2::Line::Reset>(reset);
|
||||
if constexpr (tube_processor != TubeProcessor::None) {
|
||||
tube_.ula.set_reset(reset);
|
||||
tube_.processor.set_reset(reset);
|
||||
}
|
||||
}
|
||||
|
||||
HalfCycles get_typer_delay(const std::string &text) const final {
|
||||
if(!m6502_.is_resetting()) {
|
||||
return Cycles(0);
|
||||
|
||||
@@ -45,6 +45,11 @@ struct FIFO {
|
||||
return result;
|
||||
}
|
||||
|
||||
/// Empties the FIFO.
|
||||
void reset() {
|
||||
read_ = write_ = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
ULAT &ula_;
|
||||
uint8_t mask_;
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
void set_reset(const bool reset) {
|
||||
m6502_.template set<CPU::MOS6502Mk2::Line::Reset>(reset);
|
||||
rom_visible_ |= reset;
|
||||
update_interrupts();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -36,6 +36,7 @@ public:
|
||||
void set_reset(const bool reset) {
|
||||
z80_.set_reset_line(reset);
|
||||
rom_visible_ |= reset;
|
||||
update_interrupts();
|
||||
}
|
||||
|
||||
HalfCycles perform_machine_cycle(const CPU::Z80::PartialMachineCycle &cycle) {
|
||||
|
||||
@@ -113,6 +113,21 @@ struct ULA {
|
||||
default: __builtin_unreachable();
|
||||
}
|
||||
}
|
||||
|
||||
void set_reset(const bool reset) {
|
||||
if(reset) {
|
||||
flags_ = 0x01;
|
||||
to_parasite1_.reset();
|
||||
to_parasite2_.reset();
|
||||
to_parasite3_.reset();
|
||||
to_parasite4_.reset();
|
||||
to_host1_.reset();
|
||||
to_host2_.reset();
|
||||
to_host3_.reset();
|
||||
to_host4_.reset();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
uint8_t status() const {
|
||||
return flags_;
|
||||
|
||||
Reference in New Issue
Block a user