Minor changes to README.
[vvhitespace] / stdlib / README.md
index e455d3c..b04f08e 100644 (file)
@@ -14,8 +14,8 @@ stack manipulations by allowing easy access to elements deep on the stack.
 Similarly, `slurp` and `spew` help move bulk data between the stack and heap.
 
 User interactions were also targeted. The included `printf` function provides a
-variety of substitutions to ease user interactions. For user input, `get user
-string` and `atoi` allow easy creation of basic user interfaces.
+variety of substitutions to ease user interactions. For user input,
+`get user string` and `atoi` allow easy creation of basic user interfaces.
 
 The library includes a variety of bitwise logic functions as well as heap
 manipulation functions and a handful of math functions including a random
@@ -78,9 +78,6 @@ to use the function.
 
 # Resource Reservations #
 
-Since all labels share a global namespace, the standard library makes the
-following reservations:
-
 
 ## Entry Points ##
 
@@ -98,6 +95,7 @@ header comment for each function to learn the call and return stack.
           10000 ----- random                        (math.pvvs)
           10001 ----- absolute value                (math.pvvs)
           10010 ----- greatest common divisor       (math.pvvs)
+          10011 ----- fastrand                      (math.pvvs)
          011xxx - heap functions
           11000 ----- memset                        (heap.pvvs)
           11001 ----- memcpy                        (heap.pvvs)
@@ -139,6 +137,9 @@ header comment for each function to learn the call and return stack.
 
 ## Labels ##
 
+Since all labels share a global namespace, the standard library makes the
+following reservations:
+
     00000000 0xxxxxxx - reserved for stdlib function entry points
     00000000 1xxxxxxx - available for use in user programs
     0xxxxxxx xxxxxxxx - reserved for private use by stdlib
@@ -148,11 +149,11 @@ header comment for each function to learn the call and return stack.
 ## Heap and Pointers ##
 
 The first 16 heap addresses (`0-15`) are reserved when using the stdlib.
-Within that reservation, heap[0] is used by `random` and the block
-heap[1]-heap[15] by the stack rotation subroutines which time-share
+Within that reservation, `heap[0]` is used by `random` and the block
+`heap[1]`-`heap[15]` by the stack rotation subroutines which time-share
 pseudo-registers between the various stdlib subroutines.
 
-By convention, chosen since no function other than `random` should use heap[0],
+By convention, chosen since no function other than `random` should use `heap[0],`
 functions which return a pointer will use the address `0` to represent a `NULL`
 pointer.
 
@@ -166,18 +167,16 @@ Be cautious when pushing constants in your code for use as bit arrays. Due to
 the mismatch between the VVhitespace language's sign-magnitude representation
 of integers and the interpreter's internal twos-complement representation, bit
 arrays with a leading `1` (i.e. negative numbers) may appear quite different
-then expected in your source code.
+than expected in your source code.
 
 For example, to push a 64-bit array of all `1`'s on to the stack we must push
-`SSTTN`, or `-1`, not
-`SSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTN`, or
-`2^65-1`.
+`SSTTN`, or `-1`.
 
 
 ## Extending Heap Reservation ##
 
 By default, the stdlib uses the first 16 heap addresses. All heap access (other
-than heap[0] as a seed) occurs through `stackrotate` and `stackrotatereverse`.
+than `heap[0]` as a seed) occurs through `stackrotate` and `stackrotatereverse`.
 Edit these functions to increase the stdlib's heap reservation.
 
 The remainder of the stdlib is written to automatically use the new allocation.