59 lines
1.0 KiB
NASM
59 lines
1.0 KiB
NASM
// 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.
|
|
(LOOP)
|
|
@R1
|
|
M=0
|
|
@KBD
|
|
D=M
|
|
@BLACK
|
|
D;JGT
|
|
@WHITE
|
|
D;JEQ
|
|
(BLACK)
|
|
@SCREEN
|
|
D=M
|
|
@LOOP
|
|
D;JLT
|
|
(BLACKLOOP)
|
|
@R1
|
|
D=M
|
|
M=M+1
|
|
@SCREEN
|
|
AD=D+A
|
|
M=-1
|
|
@24575
|
|
D=D-A
|
|
@LOOP
|
|
D;JEQ
|
|
@BLACKLOOP
|
|
0;JMP
|
|
(WHITE)
|
|
@SCREEN
|
|
D=M
|
|
@LOOP
|
|
D;JEQ
|
|
(WHITELOOP)
|
|
@R1
|
|
D=M
|
|
M=M+1
|
|
@SCREEN
|
|
AD=D+A
|
|
M=0
|
|
@24575
|
|
D=D-A
|
|
@LOOP
|
|
D;JEQ
|
|
@WHITELOOP
|
|
0;JMP |