summaryrefslogtreecommitdiff
path: root/projects/12/Screen.jack
diff options
context:
space:
mode:
Diffstat (limited to 'projects/12/Screen.jack')
-rw-r--r--projects/12/Screen.jack43
1 files changed, 43 insertions, 0 deletions
diff --git a/projects/12/Screen.jack b/projects/12/Screen.jack
new file mode 100644
index 0000000..6563042
--- /dev/null
+++ b/projects/12/Screen.jack
@@ -0,0 +1,43 @@
+// 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/Screen.jack
+
+/**
+ * A library of functions for displaying graphics on the screen.
+ * The Hack physical screen consists of 256 rows (indexed 0..255, top to bottom)
+ * of 512 pixels each (indexed 0..511, left to right). The top left pixel on
+ * the screen is indexed (0,0).
+ */
+class Screen {
+
+ /** Initializes the Screen. */
+ function void init() {
+ }
+
+ /** Erases the entire screen. */
+ function void clearScreen() {
+ }
+
+ /** Sets the current color, to be used for all subsequent drawXXX commands.
+ * Black is represented by true, white by false. */
+ function void setColor(boolean b) {
+ }
+
+ /** Draws the (x,y) pixel, using the current color. */
+ function void drawPixel(int x, int y) {
+ }
+
+ /** Draws a line from pixel (x1,y1) to pixel (x2,y2), using the current color. */
+ function void drawLine(int x1, int y1, int x2, int y2) {
+ }
+
+ /** Draws a filled rectangle whose top left corner is (x1, y1)
+ * and bottom right corner is (x2,y2), using the current color. */
+ function void drawRectangle(int x1, int y1, int x2, int y2) {
+ }
+
+ /** Draws a filled circle of radius r<=181 around (x,y), using the current color. */
+ function void drawCircle(int x, int y, int r) {
+ }
+}