Untitled
unknown
plain_text
2 years ago
1.5 kB
10
Indexable
// 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/04/Fill.asm
// Runs an infinite loop that listens to the keyboard input.
// When a key is pressed (any key), the program blackens the screen,
// i.e. writes "black" in every pixel;
// the screen should remain fully black as long as the key is pressed.
// When no key is pressed, the program clears the screen, i.e. writes
// "white" in every pixel;
// the screen should remain fully clear as long as no key is pressed.
// Put your code here.
@SCREEN
D=A
@SCREENADDRESS
M=D
@SCREENCOLOR
M=0
@INITIALIZESCREENADDRESS
0;JMP
(CHANGESCREENWHITE)
@24576 // Get keyboard reg
D=M // Sets keyboard reg to D
@CHANGESCREENBLACK
D;JNE
@SCREENCOLOR
M=0
@COLORCHANGED
0;JMP
(CHANGESCREENBLACK)
@-1
D=A
@SCREENCOLOR
M=D
@COLORCHANGED
0;JMP
(INITIALIZESCREENADDRESS)
@SCREEN
D=A
@SCREENADDRESS
M=D
@LOOP
0;JMP
(LOOP)
@CHANGESCREENWHITE
0;JMP // Loops
(COLORCHANGED)
@SCREENADDRESS
D=M
@24575
D=A-D
@INITIALIZESCREENADDRESS
D;JLT
@SCREENCOLOR // Setting the value in memory to this will change 1/16th of a row
D=M
@SCREENADDRESS
A=M
M=D
@SCREENADDRESS
M=M+1
@LOOP
0;JMP // Loops
Editor is loading...