diff options
Diffstat (limited to 'eater_cpu/cpp/simpc_curses.cpp')
| -rw-r--r-- | eater_cpu/cpp/simpc_curses.cpp | 76 |
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; |
