This commit is contained in:
2026-06-16 11:00:10 -06:00
parent 7980710be2
commit ebfdf05298
3 changed files with 28 additions and 3 deletions
+15
View File
@@ -32,6 +32,10 @@ namespace spider {
u32 offX = u32(block * 8 + col); u32 offX = u32(block * 8 + col);
int ascii_index = col + block * 8; int ascii_index = col + block * 8;
// Is currently on cpu.RI?
bool onRI = offset == runtime.cpu.RI;
if(onRI) t << backg::B_WHITE << color::BLACK;
// Is currently selected thing? // Is currently selected thing?
bool selected = offX == ipX && u32(row) == ipY && menuSelected && mainMenuID == 0x13; bool selected = offX == ipX && u32(row) == ipY && menuSelected && mainMenuID == 0x13;
if(selected) t << backg::B_GREEN << color::BLACK; if(selected) t << backg::B_GREEN << color::BLACK;
@@ -62,7 +66,18 @@ namespace spider {
// --- ASCII Output Loop --- // --- ASCII Output Loop ---
for (int i = 0; i < 16; ++i) { for (int i = 0; i < 16; ++i) {
u64 offset = u64(row * 16 + i);
// Is currently on cpu.RI?
bool onRI = offset == runtime.cpu.RI;
if(onRI) t << backg::B_WHITE << color::BLACK;
// Is currently selected thing?
bool selected = u32(i) == ipX && u32(row) == ipY && menuSelected && mainMenuID == 0x13;
if(selected) t << backg::B_GREEN << color::BLACK;
t << ascii[i]; t << ascii[i];
t << style::RESET << color::WHITE;
if (i == 7) t << ' '; if (i == 7) t << ' ';
} }
} }
+1
View File
@@ -49,6 +49,7 @@ namespace spider {
}; };
t << style::RESET; t << style::RESET;
t << pos(0, 0) << cpu.RA._u64;
for (i32 i = 0; i < 8; i++) { for (i32 i = 0; i < 8; i++) {
t << alt[i & 1]; t << alt[i & 1];
t << pos(c, r + i * 2); t << pos(c, r + i * 2);
+12 -3
View File
@@ -90,12 +90,20 @@ namespace spider {
void panelAction() { void panelAction() {
switch(mainMenuID) { switch(mainMenuID) {
case 1: // STEP case 1: // STEP
//runtime.step(); runtime.step();
cyclesRan++; cyclesRan++;
updateRAM = true;
updateReel = true;
break; break;
case 2: // RUN case 2: // RUN
runVM = true;
updateRAM = true;
updateReel = true;
break; break;
case 3: // STOP case 3: // STOP
runVM = false;
updateRAM = true;
updateReel = true;
break; break;
case 4: // MENU case 4: // MENU
break; // TODO: DO THIS break; // TODO: DO THIS
@@ -189,8 +197,6 @@ namespace spider {
u64 ip = std::min<u64>(reel_content.ipX + reel_content.ipY * 16, maxIP); u64 ip = std::min<u64>(reel_content.ipX + reel_content.ipY * 16, maxIP);
reel_content.ipX = ip % 16; reel_content.ipX = ip % 16;
reel_content.ipY = ip / 16; reel_content.ipY = ip / 16;
auto& t = *term;
t << pos(0, 0) << ip << ", " << maxIP;
reel_content.input.accept(char(k)); reel_content.input.accept(char(k));
updateReel = true; updateReel = true;
} }
@@ -239,6 +245,9 @@ namespace spider {
// Favour the thread doing other stuff // Favour the thread doing other stuff
if(runVM) { // IF the vm is not continously running if(runVM) { // IF the vm is not continously running
cyclesRan += runtime.run(50); // run for 50 ms
updateRAM = true;
updateReel = true;
std::this_thread::yield(); std::this_thread::yield();
} else { } else {
std::this_thread::sleep_for(std::chrono::milliseconds(50)); std::this_thread::sleep_for(std::chrono::milliseconds(50));