福野泰介の一日一創 - create every day

バーチャルマシンにディスプレイを接続、avmで動かすIchigoJamマシン語

2016/10/01
#IchigoJam #js #Arm #avm 

決められた手順(プログラム)通りに、ひたすら高速に計算するだけの機械、CPU。
これに手足顔をつなぐことで、ゲーム機、家電、パソコン、ロボットになります。

前回つくった、ソフトウェアによるArm Cortex-M0風CPUシミュレーション。
これに人間の顔にあたる、ディスプレイをつなげてみました。


avm with display
[RUN]ボタンをおすと、レジスタを忙しく変化させながら、健気に計算しまくる様子をのぞけます。

プログラムやデータ、計算した結果を記憶する機能を担う「メモリ」。特定の場所(アドレスと言う)を表示すると決めれば、それが顔になります。今回接続したディスプレイは、IchigoJamと同じ仕様、アドレス0から256コ分のキャラクターパターン、16進数で900から32x24の768byteが表示するキャラクターコードにしています。

メモリが潤沢にあるパソコン上の仮想コンピューターなので、6.2Mbyteをディスプレイ用のメモリにして、1920x1080のフルHD、1画素にRGB256階調(3byte)対応に改造することも可能です。(参考、IchigoJamのメモリマップ

サンプルとして設定済みのプログラムは、IchigoJamではじめるマシン語その5「大きな文字を256倍速表示」で生成したマシン語です。 コンピューターへの理解を深める、マシン語学習のお供にぜひどうぞ!(deleyが1以上の時、JavaScriptのコンソールには、実行した命令を表示します。)

VMとしては不完全なので、C言語などで開発したArmマシン語を貼り付けても「not supported op」と出てスキップされます。必要に応じて改造ください。

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像