N2T/tools/builtInChips/Screen.hdl

35 lines
1.1 KiB
Plaintext

// 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;
}