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
戻る