Full notes
Full Mnemonimov update
Read the full published notes in a cleaner layout. The original post stays linked below.
Repeated intro
Hey everyone, today's update introduces support for CLI programs with the addition of terminal input, and enables printing on the same line with the new printing system call variants.
What changed
- Gameplay
- Compatibility
- UI and audio
Mnemonimov changes
This update also makes debugging easier with the introduction of exceptions that report invalid target addresses in Control Flow instructions, preventing hard-to-catch issues like accidentally jumping to an arbitrary memory address due to a missing pop instruction before a return.
MISA
(compatibility change) Rename the printing system calls to [c]SYS_PRINT_LINE_*[/c] and introduce variants that do not append a newline.
Implement terminal input, enabling the creation of CLI programs.
VM
In Control Flow instructions, throw an exception if the target address does not point to a known instruction, making it considerably easier to catch control flow issues that lead to data being executed as code.
Manual
In the Machine Model chapter, add an Input page documenting the existing button input, and the new terminal input.
In the Execution Model chapter, add a page explaining VM exceptions.
In the System Calls and (Instructions) Overview pages, document that arguments/operands are not implicitly cast, and integers are signed unless noted otherwise.
In the (Instructions) Overview page, add a Syntax section covering operand order and related topics.
In the description of the [c]psh[/c], [c]pop[/c], and [c]mov[/c] instructions, mention the existence of the vector variants.
Group system calls and Floating-Point instructions by category.
Source
Changelog.gg summarizes and formats this update. How we read updates.
