RVController Built-in Monitor ============================= RVController contains a built-in machine-code monitor accessible by connecting a keyboard on channel "monitorkb" and a display on channel "monitordisp". For best results, use the keyboard and CRT ("cathodic") monitor from the digiterms mod: https://content.luanti.org/packages/mt-mods/digiterms/ After connecting these devices and programming the Luacontroller, the following should be displayed: +--------------------+ |Reset: Cold | | | |RVController Monitor| | | |Type 'help' for help| |Ready | +--------------------+ Once you see this display, the monitor is ready to accept commands. The valid commands are: peek
Reads and displays the byte (8 bits) value from RAM at the specified address poke
Writes the specified byte (8 bits) value to RAM at the specified address peekw
Reads and displays the word (32 bits) value from RAM starting at the specified address pokew
Writes the specified word (32 bits) value to RAM starting at the specified address getreg Displays the current value of the specified register number (0-31) setreg Sets the specified register (0-31) to the specified value getpc Displays the current value of the program counter setpc Sets the program counter to the specified value reset Stops the CPU, resets all registers to zero, and clears all RAM step Allows the CPU to run for one instruction, then halts run Allows the CPU to run indefinitely stop Halts the CPU setbreak
Sets a breakpoint on the specified address. Note that the breakpoint triggers just *before* the instruction fetch, as in the instruction with the breakpoint on it will not have executed yet. There can only be one breakpoint at a time. If one is already set, the new one will replace it. clearbreak Clears any set breakpoint. Note that an ebreak instruction will still cause a break. help [command] Shows information on a monitor command, or a list of commands if none is specified. Use 'help 2' to see the second page rdcsr Displays the contents of the specified CSR wrcsr Writes the specified data to the specified CSR, then reads back and displays the new value. Note that the new value may not match the written value if any read-only or WARL fields were written to. endian [big|little] With no arguments, displays the current endianness. With the argument "big" or "little", sets the current endianness to big-endian or little-endian respectively. This can also be viewed or changed using the MBE bit in the mstatush CSR.