先日購入の4ビットマイコンでプログラム。キー入力した2つの値を加えるだけ。
START:TIY 0 ; Y=0 ; L0: KA ; A = getc() ; JUMP L0 ; if ( flag ) goto L0 ; AM ; mem[ Y ] = A ; CAL SHTS ; short_sound() ; L1: KA ; A = getc() ; JUMP L1 ; if ( flag ) goto L1 ; M+ ; A = A + mem[ Y ] ; AO ; putc( A ) ; CAL ENDS ; end_sound() ; JUMP START ; goto START ;
| アドレス | 命令 | 命令コード |
|---|---|---|
| 00 | TIY | A |
| 01 | <0> | 0 |
| 02 | KA | 0 |
| 03 | JUMP | F |
| 04 | <0> | 0 |
| 05 | <2> | 2 |
| 06 | AM | 4 |
| 07 | CAL | E |
| 08 | _SHTS | 9 |
| 09 | KA | 0 |
| 0A | JUMP | F |
| 0B | <0> | 0 |
| 0C | <9> | 9 |
| 0D | M+ | 6 |
| 0E | AO | 1 |
| 0F | CAL | E |
| 10 | _ENDS | 7 |
| 11 | JUMP | F |
| 12 | <0> | 0 |
| 13 | <0> | 0 |
動作確認
実際に動かしてみる。 [reset]-1-[run] <入力> ピッ <入力> <数字LEDに答> ピロピロ の繰り返し。
キー入力でキーリリースやらチャタリングの心配をしなくていいのが、 4ビットコンピュータもどきである証拠。 でも、入力を伴う実験が簡単に書ける。