// 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. @8192 // 32*256 --> 32 16er pro Zeile D=A @ENDPOS // in @16 M=D (LOOP) @SCREEN //Screen-Einstiegsadresse D=A @ScreenStart // @SCREEN 16384 --> @17 M=D @i // Zähler = 0 18 M=0 @KBD //24576 D=M // Tastatureingabe ? @WEISS D; JEQ // WEISS WENN D == 0 @SCHWARZ // SPRINGE ZU SCHWARZ D; JNE // WENN NICHT 0 (SCHWARZ) @ENDPOS D=M @i D=D-M // ENDPOS -1 = 0 ? DANN ZU LOOP @LOOP D;JEQ @ScreenStart A=M M=-1 // SETZE -1 == SCHWARZ @i M=M+1 // i++ @ScreenStart M=M+1 @SCHWARZ 0;JMP (WEISS) @ENDPOS D=M @i D=D-M // ENDPOS -1 = 0 ? DANN ZU LOOP @LOOP D;JEQ @ScreenStart A=M M=0 // SETZE 0 == WEISS @i M=M+1 // i++ @ScreenStart M=M+1 @WEISS 0;JMP