CPUの創りかた TD4 に掲載されている「TD4 改」用のプログラムとして「3-3-7拍子・プログラム」が掲載されていることから着想を得て、本家TD4で実行できる337拍子のプログラムを考えた。
プログラム
位置 機械語 アセンブリ言語
--------------------------------
0 00111101 FIRST: MOV A, 1101
1 10111000 THREE: OUT 1000
2 10110000 OUT 0000
3 00000001 ADD A, 0001
4 11100001 JNC THREE
5 01011000 ADD B, 1000
6 11100000 JNC FIRST
7 00111001 MOV A, 1001
8 10111000 SEVEN: OUT 1000
9 10110000 OUT 0000
A 00000001 ADD A, 0001
B 11101000 JNC SEVEN
C 00000000 ADD A, 0000
D 11110000 JMP FIRST
Aレジスタを用いて、連続で音を鳴らす回数を制御している。
Bレジスタを用いて、「音を3回鳴らす処理を2回繰り返す」を実現している。
繰り返しまたはTHREEとSEVENの間の移動の時間を、連続で音を鳴らす間の時間として活用している。
Q. あれ?「TD4 改」のプログラムと似てね?
A. パクった覚えは無い。自由度が少ない中似たようなことをしたら、そりゃあ似たようなプログラムになるんじゃね?
実行結果
この動画では、TD4の命令を実行できる自作CPU「Kageki」を用い、
出力ポートの最上位ビットに 2-way Buzzer Board を接続して音を出している。
Kageki 固有の性質は用いていないため、本家TD4でも実行できると考えられる。