summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/interpreter.md13
1 files changed, 10 insertions, 3 deletions
diff --git a/docs/interpreter.md b/docs/interpreter.md
index 54a6c2a..85ab792 100644
--- a/docs/interpreter.md
+++ b/docs/interpreter.md
@@ -37,7 +37,6 @@ The only case in which this should be avoided is after an M/m command.
The interpreter comes with multiple statements for the purpose of debugging the emulator.
`Q/q` Quits the program.
-Will cause segfault at end of file if not used.
`R/r` Resets the virtual computer.
@@ -47,11 +46,19 @@ Will cause segfault at end of file if not used.
There are two forms which memory can be printed.
The first is `sXX` where `XX` is a memory page. The whole page of memory is printed onto the screen.
The second is `sXXXX` where `XXXX` is a specific address. This prints out the value of the 1 byte requested.
-Be aware that unallocated memory will be dumped if it happens to be accessed with this command. Also be aware that there should be a newline directly after this command.
+Be aware that unallocated memory will be dumped if it happens to be accessed with this command.
`S/s` Directly set a piece of memory.
Syntax is strictly of form `sXXXX.xx` where `XXXX` is the address and `xx` is the value.
`/` Prints until newline.
-`#` Ignores until newline. \ No newline at end of file
+`#` Ignores until newline.
+
+## Anomalies
+
+I don't care a whole lot about making this interpreter foolproof since its mostly for my personal debugging use. There are a couple anomalies to look out for if you intend to write programs with it.
+
+1. After M/m command, a newline is *necessary* or it will have unexpected behavior.
+2. Two newlines are necessary after single byte-length instructions or it will segfault.
+3. If Q/q is not used at the end of a program, it will segfault. It's inconsequential if it does, but it's important to know. \ No newline at end of file