Project 04, leider war Fill nicht meins
This commit is contained in:
78
projects/04/abgabe/Fill.asm
Normal file
78
projects/04/abgabe/Fill.asm
Normal file
@@ -0,0 +1,78 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user