summaryrefslogtreecommitdiff
path: root/projects/12/Memory.jack
diff options
context:
space:
mode:
Diffstat (limited to 'projects/12/Memory.jack')
-rw-r--r--projects/12/Memory.jack34
1 files changed, 34 insertions, 0 deletions
diff --git a/projects/12/Memory.jack b/projects/12/Memory.jack
new file mode 100644
index 0000000..941eec1
--- /dev/null
+++ b/projects/12/Memory.jack
@@ -0,0 +1,34 @@
+// This file is part of www.nand2tetris.org
+// and the book "The Elements of Computing Systems"
+// by Nisan and Schocken, MIT Press.
+// File name: projects/12/Memory.jack
+
+/**
+ * This library provides two services: direct access to the computer's main
+ * memory (RAM), and allocation and recycling of memory blocks. The Hack RAM
+ * consists of 32,768 words, each holding a 16-bit binary number.
+ */
+class Memory {
+
+ /** Initializes the class. */
+ function void init() {
+ }
+
+ /** Returns the RAM value at the given address. */
+ function int peek(int address) {
+ }
+
+ /** Sets the RAM value at the given address to the given value. */
+ function void poke(int address, int value) {
+ }
+
+ /** Finds an available RAM block of the given size and returns
+ * a reference to its base address. */
+ function int alloc(int size) {
+ }
+
+ /** De-allocates the given object (cast as an array) by making
+ * it available for future allocations. */
+ function void deAlloc(Array o) {
+ }
+}