4bitマイコン 15秒カウンタの仕組み
■15秒カウンタ
アドレス | 値 | 命令 | レジスタの値 | 説明 |
00 01 | A1 | TIY 1 | [a:F y:1] | Yレジスタに1を代入 |
02 03 | 89 | TIA 9 | [a:9 y:1..F] | Aレジスタに9を代入する |
04 05 | EC | CAL TIMER | [a:9 y:1..F] | 1 秒間処理を待つ( 1秒 = (Aレジスタで指定した時間 + 1) * 0.1) |
06 | 3 | CY | [a:1..F y:9] | AレジスタとYレジスタの値を入れ替える |
07 | 1 | AO | [a:9 y:1..F] | Aレジスタの値[9]を表示する |
08 | 3 | CY | [a:9 y:1..F] | AレジスタとYレジスタの値を入れ替える |
09 0A | E9 | CAL SHTS | [a:9 y:1..F] | 短い音を鳴らす。コールショーとサウンド |
0B 0C | B1 | AIY 1 | [a:9 y:1..F] | Yレジスタに1を足す。桁上がりした場合は実行フラグが1になる。 |
0D0E0F | F13 | JUMP 13 | [a:9 y:2..F] | 実行フラグが1なら、アドレス13に飛ぶ。実行フラグが0なら次の処理を行う。ここにくるときは必ず実行フラグが1なのでジャンプは実行される |
101112 | F13 | JUMP 02 | [a:9 y:0] | 実行フラグが1なら、アドレス02に飛ぶ |
13 14 | E7 | CAL ENDS | [a:9 y:0] | エンド音を鳴らす |
151617 | F15 | JUMP 15 | [a:9 y:0] | アドレス15に飛ぶ |