summaryrefslogtreecommitdiff
path: root/eater_cpu/cpp
diff options
context:
space:
mode:
authoruvok2026-01-25 09:45:30 +0100
committeruvok2026-01-25 09:45:30 +0100
commita1e84706756fd688567f588b4c58cba714bfec65 (patch)
treec20a12c61ad4103b925c19e82e0de18b739f575c /eater_cpu/cpp
parent5bd66f330d92a3329cbd689bfb2023695c042640 (diff)
eater: Horizontal flag display
Diffstat (limited to 'eater_cpu/cpp')
-rw-r--r--eater_cpu/cpp/simpc_curses.cpp76
1 files changed, 49 insertions, 27 deletions
diff --git a/eater_cpu/cpp/simpc_curses.cpp b/eater_cpu/cpp/simpc_curses.cpp
index e129e8b..b1ca064 100644
--- a/eater_cpu/cpp/simpc_curses.cpp
+++ b/eater_cpu/cpp/simpc_curses.cpp
@@ -66,43 +66,65 @@ void simpc_ui_write(const std::unique_ptr<Veater_computer> &topp, uint64_t i) {
PRINT_ME_W(clock_regs, 2, 1, "BUS: %02X\tPC: @0x%02X\tINS: 0x%02X",
topp->eater_computer->bus, topp->eater_computer->PC_out, opcode);
- PRINT_ME_W(clock_regs, 3, 1, "A : 0x%02X\tB : 0x%02X\tALU: 0x%02X\tOUT: 0x%02X",
- topp->eater_computer->A->r_datastore,
- topp->eater_computer->B->r_datastore,
- topp->eater_computer->alu->result,
- topp->eater_computer->OUT->r_datastore);
+ PRINT_ME_W(
+ clock_regs, 3, 1, "A : 0x%02X\tB : 0x%02X\tALU: 0x%02X\tOUT: 0x%02X",
+ topp->eater_computer->A->r_datastore,
+ topp->eater_computer->B->r_datastore, topp->eater_computer->alu->result,
+ topp->eater_computer->OUT->r_datastore);
// "PC: 0x%02X, INS: 0x%02X", topp->eater_computer->PC_out, opcode;
// const wchar_t flag_on = L'\u26ab';
// const wchar_t flag_off = L'\u26aa';
const char flag_on = 'X';
const char flag_off = ' ';
- const int flagstart = 4;
+ const int flagstart = 5;
+ PRINT_ME_W(clock_regs, flagstart + 0, 1,
+ "%c HLT | %c MAI | %c AI | %c BI | %c CnE | %c JMP",
+ halt ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__MAR_in ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__A_in ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__B_in ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__PC_count ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__PC_in ? flag_on : flag_off);
+ PRINT_ME_W(clock_regs, flagstart + 1, 1,
+ "%c InsI | %c RAI | %c AO | %c BO | %c CnO",
+ topp->eater_computer->flags.__PVT__INS_in ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__RAM_in ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__A_out ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__B_out ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__PC_out ? flag_on : flag_off);
PRINT_ME_W(
- clock_regs, flagstart, 1,
- "| %c | %c | %c %c | %c %c | %c %c | %c %c | %c %c | %c | %c %c %c |",
- halt ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__MAR_in ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__RAM_in ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__RAM_out ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__INS_in ? flag_on : flag_off,
+ clock_regs, flagstart + 2, 1, "%c InsO | %c RAO | %c AlO | %c Sub | %c OI",
topp->eater_computer->flags.__PVT__INS_out ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__A_in ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__A_out ? flag_on : flag_off,
+ topp->eater_computer->flags.__PVT__RAM_out ? flag_on : flag_off,
topp->eater_computer->flags.__PVT__ALU_out ? flag_on : flag_off,
topp->eater_computer->flags.__PVT__ALU_subtract_nadd ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__B_in ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__B_out ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__OUT_in ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__PC_count ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__PC_out ? flag_on : flag_off,
- topp->eater_computer->flags.__PVT__PC_in ? flag_on : flag_off);
- PRINT_ME_W(clock_regs, flagstart + 1, 1,
- "| H | M | R R | I I | A A | A S | B B | O | C C J | \n");
- PRINT_ME_W(clock_regs, flagstart + 2, 1,
- "| L | A | A A | S S | I O | L U | I O | I | E O M | \n");
- PRINT_ME_W(clock_regs, flagstart + 3, 1,
- "| T | I | I O | I O | | O B | | N | P | \n");
+ topp->eater_computer->flags.__PVT__OUT_in ? flag_on : flag_off);
+ // PRINT_ME_W(
+ // clock_regs, flagstart, 1,
+ // "| %c | %c | %c %c | %c %c | %c %c | %c %c | %c %c | %c | %c %c %c |",
+ // halt ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__MAR_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__RAM_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__RAM_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__INS_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__INS_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__A_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__A_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__ALU_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__ALU_subtract_nadd ? flag_on :
+ // flag_off, topp->eater_computer->flags.__PVT__B_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__B_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__OUT_in ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__PC_count ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__PC_out ? flag_on : flag_off,
+ // topp->eater_computer->flags.__PVT__PC_in ? flag_on : flag_off);
+ // PRINT_ME_W(clock_regs, flagstart + 1, 1,
+ // "| H | M | R R | I I | A A | A S | B B | O | C C J | \n");
+ // PRINT_ME_W(clock_regs, flagstart + 2, 1,
+ // "| L | A | A A | S S | I O | L U | I O | I | E O M | \n");
+ // PRINT_ME_W(clock_regs, flagstart + 3, 1,
+ // "| T | I | I O | I O | | O B | | N | P | \n");
for (int adr = 0; adr < 16; adr++) {
const int ypos_base = 1;