Moved Hunt the Wumpus to more descriptive directory name.
[vvhitespace] / reference.md
index c5c4344..99b4ffe 100644 (file)
@@ -42,13 +42,13 @@ representation.
 
     [Space] [Tab][Space][Tab][Space][Tab][Space] [LF]
 
 
     [Space] [Tab][Space][Tab][Space][Tab][Space] [LF]
 
-Labels consist of an opening [VTab] followed by a [LF] terminated list of up
-to sixteen spaces and tabs. There is only one global namespace so all labels
-must be unique. Labels are left-padded with [Space] up to sixteen characters;
-the following two labels are interchangeable.
+Labels consist of an [LF] terminated list of up to sixteen spaces and tabs. The
+program must not begin with a label. There is only one global namespace so all
+labels must be unique. Labels are left-padded with [Space] up to sixteen
+characters; the following two labels are interchangeable.
 
 
-    [VTab]        [Tab][Space][Tab] [LF]
-    [VTab] [Space][Tab][Space][Tab] [LF]
+           [Tab][Space][Tab] [LF]
+    [Space][Tab][Space][Tab] [LF]
 
 ## Stack Manipulation (IMP: [Space]) ##
 
 
 ## Stack Manipulation (IMP: [Space]) ##
 
@@ -66,7 +66,7 @@ the IMP [Space]. There are four stack instructions.
 
 Arithmetic commands operate on the top two items on the stack, and replace them
 with the result of the operation. The first item pushed is considered to be
 
 Arithmetic commands operate on the top two items on the stack, and replace them
 with the result of the operation. The first item pushed is considered to be
-left of the operator.
+left of the operator. The modulo command will always return a positive result.
 
 | Command        | Params | Meaning          |
 | :------------- | :----- | :--------------- |
 
 | Command        | Params | Meaning          |
 | :------------- | :----- | :--------------- |
@@ -96,15 +96,15 @@ well as the targets of conditional and unconditional jumps, by which loops can
 be implemented. Programs must be ended by means of [LF][LF][LF] so that the
 interpreter can exit cleanly.
 
 be implemented. Programs must be ended by means of [LF][LF][LF] so that the
 interpreter can exit cleanly.
 
-| Command        | Params | Meaning                          |
-| :------------- | :----- | :------------------------------- |
-| [Space][Space] | Label  | Mark a location in the program   |
-| [Space][Tab]   | Label  | Call a subroutine                |
-| [Space][LF]    | Label  | Jump unconditionally to a label  |
-| [Tab][Space]   | Label  | Jump to label if TOS is zero     |
-| [Tab][Tab]     | Label  | Jump to label if TOS is negative |
-| [Tab][LF]      | ---    | Return from subroutine           |
-| [LF][LF]       | ---    | End the program                  |
+| Command              | Params | Meaning                          |
+| :------------------- | :----- | :------------------------------- |
+| [Space][Space][VTab] | Label  | Mark a location in the program   |
+| [Space][Tab]         | Label  | Call a subroutine                |
+| [Space][LF]          | Label  | Jump unconditionally to a label  |
+| [Tab][Space]         | Label  | Jump to label if TOS is zero     |
+| [Tab][Tab]           | Label  | Jump to label if TOS is negative |
+| [Tab][LF]            | ---    | Return from subroutine           |
+| [LF][LF]             | ---    | End the program                  |
 
 ## I/O (IMP: [Tab][LF]) ##
 
 
 ## I/O (IMP: [Tab][LF]) ##