以下に示すのがFX-マイコンの全命令です。
フラグの推移について書かれていないものは、すべてフラグを1にします。
直値とは直接数字をしていすることです。
16進 | ニーモニック | 意味 |
---|---|---|
0 | KA | レジスタAに押されているキーの値を格納。入力がないとフラグ1 |
1 | AO | レジスタAの内容を7セグLEDに表示する |
2 | CH | レジスタAとB、YとZをチェンジする |
3 | CY | レジスタAとYの内容をチェンジする |
4 | AM | レジスタAの内容をメモリに格納する |
5 | MA | メモリの内容をレジスタAに読み込む |
6 | M+ | メモリとレジスタAを足し、結果をAに入れる。桁上がりでフラグ1 |
7 | M- | メモリからレジスタAを引き、結果をAに入れる。桁下がりでフラグ1 |
8 | TIA | 直値をレジスタAに入れる |
9 | AIA | レジスタAに直値を足し込む。桁上がりでフラグ1 |
A | TIY | 直値をレジスタYに読み込む |
B | AIY | レジスタYに直値を足し込む。桁上がりでフラグ1 |
C | CIA | レジスタAと直値を比較し、違うときフラグ1 |
D | CIY | レジスタYと直値を比較し、違うときフラグ1 |
E | CAL | 割り込みを起こしてROMルーチンを呼び出す |
F | JUMP | フラグが1の時、分岐を行う |
以下に示すのは内部ルーチンに用意されたプログラムです。これらは必ずEのCAL命令で呼び出されるので、16進やニーモニックもその組み合わせで書いてあります。
16進 | ニーモニック | 意味 |
---|---|---|
E0 | CAL RSTO | 7セグ数字LEDを消す |
E1 | CAL SETR | レジスタYの位置の2進LEDを点灯する |
E2 | CAL RSTT | レジスタYの位置の2進LEDを1個消す |
E3 | CAL INPT | 外部入力をレジスタAに入れる |
E4 | CAL CMPL | レジスタAを反転させる |
E5 | CAL CHNG | レジスタABYZとA'B'Y'Z'をチェンジする |
E6 | CAL SIFT | レジスタAを右にシフトする。結果が偶数のときフラグ1 |
E7 | CAL ENDS | エンド音を鳴らす |
E8 | CAL ERRS | エラー音を鳴らす |
E9 | CAL SHTS | 短い音を鳴らす |
EA | CAL LONS | 長い音を鳴らす |
EB | CAL SUND | レジスタAの音階の音を鳴らす |
EC | CAL TIMR | (レジスタA+1)×0.1秒待つ |
ED | CAL DSPR | メモリ5F、5Eの内容を2進LEDに表示する |
EE | CAL DEM- | レジスタYが示すメモリからAを引いた後、10進補正して元のメモリに格納 |
EF | CAL DEM+ | レジスタYが示すメモリにAを足した後、10進補正して元のメモリに格納 |
以下に示すのは、CAL SUNDで使用されるレジスタAの値と音階の対応表です。同じものがキーボードにも印刷されていました。
0 | 無音 |
1 | ラ(低音) |
2 | シ(低音) |
3 | ド |
4 | レ |
5 | ミ |
6 | ファ |
7 | ソ |
8 | ラ |
9 | シ |
A | ド(高音) |
B | レ(高音) |
C | ミ(高音) |
D | ファ(高音) |
E | ソ(高音) |
F | 無音 |
FX-マイコンエミュレータつくったらウケるかな・・・