From a59407a215d6112c2e20b1a746b33742209e5f87 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 16 Oct 2022 16:24:49 -0700 Subject: Support for log-based event model --- main.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 64d1a04..b587ce4 100644 --- a/main.cpp +++ b/main.cpp @@ -30,10 +30,8 @@ int load_program(checker &checker, const std::uint8_t *program) { address = ((b1 & 0077) << 6) | *program++; } else if ((b1 & 0300) == 0000) { seen_non_leader = true; - if (data.has_value()) { - //std::cout << fmt::format("mem[{:06o}] = {:04o}\n", data->first, data->second); + if (data.has_value()) checker.mem.store(data->first, data->second); - } auto a = field | address++; auto d = ((b1 & 0077) << 6) | *program++; data = std::make_pair(a, d); @@ -58,7 +56,8 @@ int main(int argc, const char *argv[]) { return 1; } - checker checker; + iomodel system; + checker checker(system); for (--argc, ++argv; argc; --argc, ++argv) { auto program = programs.at(argv[0]); @@ -66,10 +65,9 @@ int main(int argc, const char *argv[]) { return err; } - while (!checker.halted) { - std::cout << fmt::format("{:04o}: ", checker.pc); + while (true) { + std::cout << fmt::format("{:9} @{:04o} {:01o}:{:04o}:{:04o}\n", system.time, checker.pc, checker.link, checker.acc, checker.mq); checker.execute(); - std::cout << fmt::format("link={:01o} acc={:04o} mq={:04o}\n", checker.link, checker.acc, checker.mq); } return 0; -- cgit v1.2.3