回答編集履歴

1

修正コード。

2017/04/20 12:33

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -23,3 +23,67 @@
23
23
  現状のコードだと無限ループになるような気がするのですが‥。
24
24
 
25
25
  上記コードが何をしているか(どの範囲をクリアしているか)を教えていただければアドバイス出来ます。
26
+
27
+
28
+
29
+ # 修正コード
30
+
31
+
32
+
33
+ 上記範囲のコードの修正版です。$0000~$76ffまで$00クリアします。
34
+
35
+ ちゃんとした環境が無いのでちゃんとチェック出来ていません。
36
+
37
+
38
+
39
+ ```
40
+
41
+ init:
42
+
43
+ lda #$00
44
+
45
+ sta $10
46
+
47
+ lda #$01
48
+
49
+ sta $11
50
+
51
+ ;lda #$00 ;(削除)使いません
52
+
53
+ ;sta $22 ;(削除)使いません
54
+
55
+ lda #$77
56
+
57
+ sta $23
58
+
59
+ ldy #$00 ;(追加)初期化
60
+
61
+ l2: ;(追加)Aレジスタ再初期化用
62
+
63
+ lda #$00
64
+
65
+ l1:
66
+
67
+ sta ($10),y
68
+
69
+ iny
70
+
71
+ ;cpy #$00 ;(修正)$ffではなく$00でチェック. ただしチェックしなくてもフラグが経つので必要なし
72
+
73
+ bne l1 ;(修正)eqではなくne
74
+
75
+
76
+
77
+ lda $11 ;(修正)上位バイトの更新/チェックなので$11 ($23は全くの間違い)
78
+
79
+ adc #$1
80
+
81
+ sta $11 ;(追加)+1したものを書き込まないとアドレスが進まない
82
+
83
+ cmp $23
84
+
85
+ bne l2 ;(修正)Aレジスタは壊れているので再初期化するためにl2にジャンプ
86
+
87
+ ```
88
+
89
+