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