File tree Expand file tree Collapse file tree 1 file changed +71
-1
lines changed Expand file tree Collapse file tree 1 file changed +71
-1
lines changed Original file line number Diff line number Diff line change 8
8
// i.e. writes "black" in every pixel. When no key is pressed ,
9
9
// the screen should be cleared.
10
10
11
- //// Replace this comment with your code.
11
+ (HANDLE_KEYBOARD)
12
+ // 画面サイズは横 512 * 縦 256
13
+ // == 32 ワード * 16 ワード
14
+ @i
15
+ M= 0
16
+
17
+ @KBD
18
+ D=M
19
+ @MAKE_SCREEN_BLACK
20
+ D ;JGT
21
+ @MAKE_SCREEN_WHITE
22
+ 0 ;JMP
23
+
24
+ (MAKE_SCREEN_BLACK)
25
+ // i == 8192 ならば画面を塗りつぶす処理が最後まで完了しているはずなので
26
+ // 内側のループを抜ける
27
+
28
+ // NOTE: 本来は@ 8192 にすべきだが、動作が遅すぎて検証できないので@ 5 にしている
29
+ @ 5
30
+ // @ 8192
31
+ D=A
32
+ @i
33
+ D=D - M
34
+ @HANDLE_KEYBOARD
35
+ D ;JEQ
36
+
37
+ // SCREEN + i番目のワードを 111 ... 111 に設定する
38
+ @i
39
+ D=M
40
+
41
+ @SCREEN
42
+ A=A + D
43
+ M= - 1
44
+
45
+ // i ++
46
+ @i
47
+ M=M + 1
48
+
49
+ @MAKE_SCREEN_BLACK
50
+ 0 ;JMP
51
+
52
+ (MAKE_SCREEN_WHITE)
53
+ // i == 8192 ならば画面を塗りつぶす処理が最後まで完了しているはずなので
54
+ // 内側のループを抜ける
55
+
56
+ @ 5
57
+ // @ 8192
58
+ D=A
59
+ @i
60
+ D=D - M
61
+ @HANDLE_KEYBOARD
62
+ D ;JEQ
63
+
64
+ // SCREEN + i番目のワードを 111 ... 111 に設定する
65
+
66
+ @i
67
+ D=M
68
+
69
+ @SCREEN
70
+ A=A + D
71
+ M= 0
72
+
73
+ // i ++
74
+ @i
75
+ M=M + 1
76
+
77
+ @MAKE_SCREEN_WHITE
78
+ 0 ;JMP
79
+
80
+ @HANDLE_KEYBOARD
81
+ 0 ;JMP
You can’t perform that action at this time.
0 commit comments