GMC-4

大人の科学から4bitマイコンの「GMC-4」が登場しました!

これを機会にたくさんの人がプログラミングやマイコンに興味を持ったら

面白くなるだろうなぁと考えています。

そこでGMC-4を紹介してみたいと思います。

・二進LED7個と数字LED1個とブザーを搭載

・直接打ち込みでプログラミング可能

・00〜4Fまでがプログラムメモリ(50〜5Fにも書き込み可能。実質は5Fまで)

・単3電池3個必要

と、このような仕様です。

これで何ができるんだ!と思う方もいると思いますが、

このように限界がはっきりしているからこそ何かができるんです!

ではGMC-4命令コードを見てみます。

Arのように小文字の「r」はレジスタの意。?は0〜Fの数がひとつ入ります。

A'rの「'」は補助レジスタを意味します。

コード(16進数)命令記号実行フラグ説明
0KA0,1押されたキーをArに代入。押されていないなら実行フラグは1,押されたら実行フラグは0
1AO1Arの値を数字LEDに表示
2CH1ArとBr、YrとZrの値をそれぞれ交換
3CY1ArとYrの値を交換
4AM1Arの値をデータメモリの(50+Yr)番地に代入
5MA1データメモリの(50+Yr)番地の値をArに代入
6M+0,1Arにデータメモリの(50+Yr)番地の値を足す。桁上がりしたとき実行フラグは1、それ以外は0
7M-01データメモリの(50+Yr)番地の値からArを引いてArへ代入。値がマイナスなら実行フラグは1、それ以外は0
8TIA ?1Arに指定した値(0〜F)を代入
9AIA ?0,1Arに指定した値(0〜F)を足す。桁上がりしたら実行フラグは1、それ以外は0
ATIY ?/td>1Yrに指定した値(0〜F)を代入
BAIY ?0,1Yrに指定した値(0〜F)を足す。桁上がりしたら実行フラグ1、それ以外は0
CCIA ?0,1Arの値が?と同じなら実行フラグは0、違うなら実行フラグは1
DCIY ?0,1Yrの値が?と同じなら実行フラグは0、違うなら実行フラグは1
FJUMP ??1実行フラグが1なら??のアドレスに移動する。実行フラグが0ならそのまま素通りで実行フラグは1になる。

ここからはよく使える便利な命令です。

コード(16進数)命令記号実行フラグ説明
E0CAL RSTO1数字LEDを消灯する
E1CAL SETR12進LEDの一か所を点灯させる。YrにはそのLEDビット番号(0〜6)を代入しておく。
E2CAL RSTR12進LEDの一か所を消灯させる。YrにはそのLEDビット番号(0〜6)を代入しておく。
E4CAL CMPL1Arの二進数値の0と1を反転させる。(bit反転)
E5CAL CHNG1Ar,Br,Yr,ZrとA'r,B'r,Y'r,Z'rの値を互いに交換
E6CAL SIFT0,1Arの値を1bit右へシフトする。もし元が偶数だったら実行フラグは1,奇数なら実行フラグは0になる。
E7CAL ENDS1エンドサウンドを流す
E8CAL ERRS1エラーサウンドを流す
E9CAL SHTS1ピッと短い音を鳴らす
EACAL LONS1ピーと長い音を鳴らす
EBCAL SUND1Arで指定した音階(1〜E)を鳴らす
ECCAL TIMR1Arで指定しただけ処理を待つ。時間は(Ar+1)×0,1)秒
EDCAL DSPR1データメモリの値を2進LEDに点灯する。5Fに上位3bit,5Eに下位4bitを入れておく。
EECAL DEM-1データメモリの値からArの値を引く。結果は十進数にしてメモリに格納。実行後、Yrの値が1引かれる。
EFCAL DEM+1データメモリの値にArの値を足す。結果は十進数にしてメモリに格納。桁上がりの場合、自動的にデータメモリが書き換わる。Yrの値が1引かれる。

このように30個の命令コードがあります。これを屈して様々なプログラムを作っていきます!

戻る