#pragma once #include #include #include #include #include "io/event.h" #include "isa/isa.h" struct iomodel { static constexpr unsigned int TT_OUTPUT_DELAY = 1; event_log log; std::uint64_t time = 0; bool interact(std::array &ctlregs); bool done() { return log.lower_bound(time) == log.end(); } std::uint64_t load_time = 0; void load_evt(std::istream &fh); std::ostream & write_evt(std::ostream &fh); };