盤面内には 52 個の開閉する壁があり、以下の 3 種に分類される:
0..=19
)20..=35
)36..=51
)各横壁のインデックスおよび左端の RAM アドレスは下図の通り:
各縦壁のインデックスおよび左端の RAM アドレスは下図の通り:
各交点壁のインデックスおよび RAM アドレスは下図の通り:
各壁は以下の状態を持つ:
これは壁が開いてから閉じるまでの状態を管理する。値の意味は以下の通り:
値 | 意味 |
---|---|
0 | 閉じたまま。 |
1..=14 | 閉じており、点滅アニメーション中。 |
15 | 閉じており、開いた状態で描画する直前。 |
16..=22 | 閉じており、開いた状態で描画されている。 |
23 | 閉じており、開く (盤面セルたちを更新する) 直前。 |
24 | 開いており、タイマー値更新中。条件を満たしたら閉じる。 |
25..=48 | 閉じており、点滅アニメーション中。 |
49 | 閉じており、閉じた状態で描画する直前。 描画したら状態カウンタを 0 にリセットする。 |
これは開いた壁が閉じるまでの時間を管理する。bit7 によって意味が異なる:
ただし、いずれの場合も閉じようとする壁が内部に赤玉を含む場合、閉じる処理をキャンセルし、デクリメント後のタイマー値をインクリメントして元に戻す。
これは開いた壁を構成する各盤面セルの開閉状態を保持する。どの種類の壁でも値 0 は全てのセルが閉じていることを示す。
0 | ##### |
---|---|
1 | .#### |
2 | #.### |
3 | ##.## |
4 | ###.# |
5 | ####. |
6 | #.#.# |
7 | ..... |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
# # # |
# # . |
. # . |
# . . |
# . # |
. . # |
. # # |
. . . |
0 | # |
---|---|
1 | . |