// This file is part of www.nand2tetris.org // and the book "The Elements of Computing Systems" // by Nisan and Schocken, MIT Press. // File name: tools/builtIn/Screen.hdl /** * The Screen (memory map). * Functions exactly like a 16-bit 8K RAM: * 1. out(t)=Screen[address(t)](t) * 2. If load(t-1) then Screen[address(t-1)](t)=in(t-1) * * The built-in chip implementation has the side effect of continuously * refreshing a visual 256 by 512 black-and-white screen, simulated * by the simulator. Each row in the visual screen is represented * by 32 consecutive 16-bit words, starting at the top left corner * of the visual screen. Thus the pixel at row r from the top and * column c from the left (0<=r<=255, 0<=c<=511) reflects the c%16 * bit (counting from LSB to MSB) of the word found in * Screen[r*32+c/16]. */ CHIP Screen { IN in[16], // what to write load, // write-enable bit address[13]; // where to read/write OUT out[16]; // Screen value at the given address BUILTIN Screen; CLOCKED in, load; }