2009/07/07 「学研 大人の科学 4ビットマイコン GMC−4」

 かつてから大人の科学は気に入った号を購入してたのですが、今回は特別。
 アセンブラの人としては黙って居られないアイテムです(笑

 子供時代、PCに興味を持つきっかけになったMZ40Kを思い出す4ビットマイコンです。
 実際いじってみたところ、仮想コンピュータ的なものだったんですが、機械語で遊ぶには十分なもの。
 制限多くてかえって燃えてきたりして(マゾっ気全開?)。

 さっそく練習でプログラムを組んでみた。
 掲載されていたアセンブラサイトだと何故かジャンプ先がうまく変換できなかったのでハンドアセンブルです。
Adr	Data	Label		Command
------------------------------------------------
00	A0	LOOP00:		TIY	0
02	E1	LOOP01:		CAL	SETR
04	0	LOOP02:		KA
05	F0B			JUMP	LOOP10
08	F02			JUMP	LOOP02
0B	0	LOOP10:		KA
0C	F0B			JUMP	LOOP10
0F	E2			CAL	RSTR
11	B1			AIY	1
13	D7			CIY	7
15	F02			JUMP	LOOP01
19	F00			JUMP	LOOP00
 このプログラムは、何かキーを押す度にアドレス表示の7つのLEDが左に流れていくだけのもの。
 キーが離されてから入力待ちにしないと押した瞬間に高速に流されてしまうので、LOOP02の所で待つようにしています。LOOP10でキー入力が押されるのを待ちます。
(このあたりは、かつてゲーム会社に関わってた経験が生きていますヨ。)
 打ち込まれる場合はDataと書いてある部分を順番に入力してください。

 さて、まずは何を作ってみようか・・・。


 追記
 作ってみた。「ワンキーシーケンサー」
Adr	Data	Label		Command
------------------------------------------------
00	A0	LOOP00:		TIY	0
02	0	LOOP01:		KA
03	F09			JUMP	LOOP10
06	F02			JUMP	LOOP01
09	0	LOOP10:		KA
0A	F09			JUMP	LOOP10
0D	5			MA
0E	CF			CIA	F
10	F16			JUMP	LOOP20
13	F00			JUMP	LOOP00
16	EB	LOOP20:		CAL	SUND
18	B1			AIY	1
1A	5			MA
1B	F02			JUMP	LOOP01

Data Aera (max 16steps)
50	7556443456777F
 つまるところカシオトーン。アドレス50からのデータ領域に入力された音階データを、何かキーを押す度に1音づつ再生。音階は本誌参照、3がドです。Fまたはアドレス最後に来たら先頭に戻って繰り返します。
 1A番地のコードはフラグを1にしてジャンプさせるためのダミーです。
 ただ残念なことにデータ領域が16音しか無いので単純な繰り返ししかできません(上のサンプルは ちょうちょ)
 プログラム領域から1音づつ読むのはコマンドが無くて不可能でした。16音毎にプログラムからデータ領域を書き換えればできるかもですがメンドイネ。もうちょっと修行してからで。。。

 つづく?

2009/07/07


戻る