Added memrand function to VVS stdlib.
[vvhitespace] / stdlib / README.md
index 2639a41..348cc76 100644 (file)
@@ -1,5 +1,14 @@
+# Overview #
+
+This folder contains a library of useful functions written in VVhitespace.
+Standard include guards are used with `cpp` to include the stdlib in user
+programs. For an example, see `examples/hello-stdlib`.
+
 # Reservations #
 
 # Reservations #
 
+Since all labels share a global namespace, the standard library makes the
+following reservations:
+
 ## Label ##
 
     00000000 0xxxxxxx - reserved for stdlib function entry points
 ## Label ##
 
     00000000 0xxxxxxx - reserved for stdlib function entry points
 The following labels are entry points to stdlib functions. Read the
 header comment for each function to learn the call and return stack.
 
 The following labels are entry points to stdlib functions. Read the
 header comment for each function to learn the call and return stack.
 
-    stdio.pvvs:
-           1000 - print string from stack
-           1001 - print string from heap
+         000xxx - reserved
+         001xxx - print functions
+           1000 ----- print string from stack       (stdio.pvvs)
+           1001 ----- print string from heap        (stdio.pvvs)
+           1010 ----- print number from stack       (stdio.pvvs)
+         010xxx - math functions
+          10000 ----- random                        (math.pvvs)
+          10001 ----- absolute value                (math.pvvs)
+         011xxx - heap functions
+          11000 ----- memset                        (heap.pvvs)
+          11001 ----- memcpy                        (heap.pvvs)
+          11010 ----- memrand                       (heap.pvvs)
+         100xxx - unassigned
+         101xxx - unassigned
+         110xxx - conversion functions
+         111xxx - debug functions
+         111000 ----- dump heap                     (debug.pvvs)
+        1xxxxxx - reserved for less common entry points
+        1000000 ----- print sign of number          (stdio.pvvs)
+        1000001 ----- print magnitude of number     (stdio.pvvs)
 
 # Misc #
 
 
 # Misc #
 
@@ -27,3 +53,4 @@ private label space associated with it, formed as follows:
 
     00001000 xxxxxxxx - for use by 1000
     00001001 xxxxxxxx - for use by 1001
 
     00001000 xxxxxxxx - for use by 1000
     00001001 xxxxxxxx - for use by 1001
+    ...etc