summaryrefslogtreecommitdiff
path: root/projects/12/Memory.jack
blob: 941eec1a2e553999b2caa0b307b9e66cd5ca5122 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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) {
    }    
}