* Tasks ** DONE File IO and test ** DONE Stop exploding the heap with logs :DDD ** DONE Fix DONE instruction for VM termination *** DONE Add setting instructions ** DONE Add assembler ** DONE Chisel tester ** DONE Add LF ** DONE Redo colors in fansi. ANSI fucks up string formatting ** DONE Columnize log events ** DONE Chisel test log evaluator ** DONE Create giftWrapper script ** DONE Better sourceinfo stuff Good enough ** DONE Test options *** DONE How much NOP pad? *** DONE Verbosity? *** DONE Which tests? ** DONE ish Step counter, pretty print VM log, including final memory state ** TODO More programs *** DONE Real programs *** TODO Basic programs Needs more ** DONE Merge in LF changes ** TODO Breakpoints *** TODO VM breakpoints **** TODO Record breakpoints in chisel tester *** TODO Chisel breakpoints **** TODO Freeze processor to record state **** TODO Record breakpoints in chisel tester *** TODO Draw breakpoints in the printer ** TODO Calculate steps needed ** TODO Unmangle derailed traces With incorrect designs the trace printer ends up printing a lot of diveregent unsychnronizable blocks ** DONE Fix DONE instruction *** DONE Parse error *** DONE Use DONE address ** DONE Hazard generator good enough ** TODO Semantic logging Currently logging is quite awkward, a combination of fansi and regular strings. Ideally a markdown format such as HTML should be used. There are already plenty good scala libraries for this, such as liyaohi's stuff (big shoutout!) ** TODO Interactive stepping This one is a pretty big undertaking, but it could be very useful to run the circuit in an interactiv environment. https://venus.cs61c.org/ is a good example of how useful this can be for a virtual machine. This task requires pretty good understanding of chisel. * Maybe ** DONE Move instruction recording to IMEM rather than IF? Only care about what IF gets, won't have to deal with whatever logic is in IF. ** DONE Figure out why loading instructions backwards made shit werk Not as funny as you'd think. The issue was overwriting the last written instruction with 0