About AVR Emulator to study in Javascript

目的

このソフトの目的はウェブブラウザ上で動く AVR マイコンアセンブラエミュレータを実装することです。 ただし、完全にエミュレートする事は主眼に無く、マイコンの動作を勉強するのに役立てばと思っています。

動機

Chart.js,D3.js などの使い方を調べているうちに、 そもそもJavascriptを真面目に記述したことがなかったので勉強がてら手を出しました。

でもだらだらと文法書いても面白くないので、誰かの役にたつもので候補に上がったエミュレータになりました。

進捗

まだまだ書き始めたばかりで、設計もきちんとできていないのでまだ参考にならない。 現状はJavascript の勉強でしかないのですが、記録として記事にします。

現状の成果

  • Github pages に上げてあります。

https://katogiso.github.io/avr_emu/

とりあえずの使い方

f:id:katogiso-tech:20160925174820p:plain

アクセスするとテキストエリアにアセンブラが記載されていて、 その下にボタンが4つあり、それで操作する。

clear

単純にテキスト表示をクリアするだけ、実用性は今のところ無い。

load

テキストエリアのアセンブラを内部に取り込む。 取り込んだ結果はFlags, Flash ROM の表示に反映する。

next

サイクルを進める。 自走モードは存在しないので、ひたすらクリックする。 将来は自走モードをつける予定です。

reset pc

PC を 0 にします。

サンプルのアセンブラでやっていること。

  1. 汎用レジスタのR09に0xA(0d10) をロード
  2. AND は未実装なので変化なし。
  3. JMP で 0 に戻る。

全く実用性が無い内容となっています。

今後の展望

もう少し使える命令を増やして、D3js を使ってもっと見た目を向上させます。 やっぱり見た目は大事です。