diff --git a/Components/1770/1770.cpp b/Components/1770/1770.cpp index 7bb70ee10..91724f2f2 100644 --- a/Components/1770/1770.cpp +++ b/Components/1770/1770.cpp @@ -1,4 +1,4 @@ -// + // // 1770.cpp // Clock Signal // @@ -44,9 +44,17 @@ void WD1770::set_register(int address, uint8_t value) switch(address&3) { case 0: - command_ = value; - posit_event(Event::Command); - // TODO: is this force interrupt? + { + if((value&0xf0) == 0xd0) + { + printf("!!!TODO: force interrupt!!!\n"); + } + else + { + command_ = value; + posit_event(Event::Command); + } + } break; case 1: track_ = value; break; case 2: sector_ = value; break; diff --git a/Machines/Oric/Oric.cpp b/Machines/Oric/Oric.cpp index b23bb5f2e..d14025735 100644 --- a/Machines/Oric/Oric.cpp +++ b/Machines/Oric/Oric.cpp @@ -146,6 +146,7 @@ unsigned int Machine::perform_bus_operation(CPU6502::BusOperation operation, uin } via_.run_for_cycles(1); + if(microdisc_is_enabled_) microdisc_.run_for_cycles(8); cycles_since_video_update_++; return 1; }