Hey everyone, it's been about a week since Mnemonimov released in Early Access, and I've just pushed its first update. It focuses on bug fixes and improvements to the Manual. Below you'll find the full list of changes.
Terminal
Fix delete command briefly freezing the game and making it prone to crash afterward.
Fix traceback command crashing the game when the stack is corrupted.
Improve the traceback command with messages for when the stack trace cannot be printed, and specify that the most recent calls are listed first.
Add a copyoutput command to copy the terminal output to the clipboard.
VM
Fix an issue where vector instructions fail silently with a range of 32 registers.
Add specific exceptions for non-positive memory/storage access lengths, instead of handling this generically with the out-of-bounds exceptions.
Code Editor
Fix breakpoints being cleared on save.
UI
Add drag handle icons to tabs to make it more visible that they can be moved across panels.
Manual
Add a Quick Reference page in the Instructions chapter, with all instructions listed by category in tables.
In the Labels page, document that labels evaluate to pa-relative addresses by default, except when used in Control Flow instructions. Also, mention this behavior in the Control Flow page.
Adjust the pseudocode of vector instructions to better represent how they operate.
In the description of the SYS_MEM_COPY system call, indicate that copying between overlapping ranges results in undefined behavior.
Document that mul and mlh perform signed multiplication.
Clarify that the SYS_PRINT_INT syscall prints a signed integer.
Add a Directives page, documenting that directives are a different concept from instructions.
Clarify the distinction between the emb and res directives, documenting their intended use cases with additional notes. Also, link the Types table for convenience.
In the page Types and Files, adjust the Types table to indicate more clearly which types are embed-only, and add complementary notes below the table.
In the description of load/store instructions, explicitly mention that only scalar types are supported, and link the Types table for convenience.
In Round-Robin Scheduling > The Watchdog, document as a footnote how long a process can run before triggering a watchdog violation.
Document that the fsgn instruction currently computes an integer result instead of a float.
