This commit is contained in:
Timon 2025-12-10 18:28:54 +01:00
parent 705c7bcb58
commit d50c62106e
14 changed files with 344 additions and 156 deletions

View file

@ -1,4 +1,5 @@
#include "../headers/cpu.h"
#include <iostream>
void cpu::start() {
if (running) return;
@ -27,20 +28,24 @@ void cpu::setSpeed(int speedKhz) {
void cpu::zankaUre() {
while (running) {
// 1. Izvedemo določeno št. ukazov na tick
for (int i = 0; i < operacijeNaTick; i++) {
cpu::m->execute();
bool ok = cpu::m->execute();
if (!ok) {
running = false;
//std::cout << i << std::endl;
break;
}
}
// 2. Izračunamo kolikokrat mora "tikati" na sekundo
// speed_kHz = n tisoč ukazov / sekundo
// operacijeNaTick = koliko ukazov na en tik
// ticksPerSecond = (hitrostKhz * 1000) / operacijeNaTick
if (!running) break;
double ticksPerSecond = (hitrostKhz * 1000.0) / operacijeNaTick;
double sleepTimeSec = 1.0 / ticksPerSecond;
// 3. Ustavimo nit za izračunani čas
std::this_thread::sleep_for(std::chrono::duration<double>(sleepTimeSec));
}
}
void cpu::step() {
cpu::m->execute();
}