0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GMC-4】ガッテンR的なもの

Posted at

学研の4ビットマイコン GMC-4 で「ガッテンR」的なものを作ってみた。

ガッテンR

「ガッテンR」とは、プロジェクト59 タケ様がかつて頒布していたキットである。

『ガッテンR』 ⑥ キット頒布について - プロジェクト59 : キット頒布、電子工作 『ユルハム派』

以下の仕様となっているようである。

  • ボタンを押して離すと、モールス信号の「R」の音が鳴り、LEDが光る。
  • 光るLEDの色は、緑と赤がボタンを押すたびに交互になる。
  • スイッチを切り替えると、「R」のかわりに「FB」の音を鳴らすモードにできる。

今回の仕様

  • F以外のキーを押して離すと、2進LEDのビット3を点灯させ、モールス信号の「R」を鳴らす。
  • Fキーを押すと、「R」のかわりに「FB」を鳴らすモードの有効/無効を切り替える。
  • 「FB」を鳴らすモードのときは、2進LEDのビット0を点灯させる。

プログラム

以下のプログラムは、MikeAssembler でアセンブルできる。

target gmc4

	TIY 3
	TIA 0
	AM
main_loop:
	CAL RSTR
key_wait:
	KA
	JUMP key_wait
key_release_wait_loop:
	KA
	JUMP key_released
	JUMP key_release_wait_loop
key_released:
	TIY 3
	CIA 0xF
	JUMP make_sound
	; R / FB 切り替え
	MA
	AIA 8
	AM
	TIY 0
	CIA 0
	JUMP switched_to_fb
	JUMP main_loop
switched_to_fb:
	CAL SETR
	JUMP key_wait

make_sound:
	CAL SETR
	CAL SHTS
	MA
	CIA 0
	JUMP play_fb
	CAL LONS
	CAL SHTS
	JUMP main_loop

play_fb:
	CAL SHTS
	CAL LONS
	CAL SHTS
	TIA 2
	CAL TIMR
	CAL LONS
	CAL SHTS
	CAL SHTS
	CAL SHTS
	JUMP main_loop

以下は、このプログラムの機械語表現である。

  | 0 1 2 3  4 5 6 7  8 9 A B  C D E F
--+-----------------------------------
0 | A 3 8 0  4 E 2 0  F 0 7 0  F 1 2 F
1 | 0 B A 3  C F F 2  C 5 9 8  4 A 0 C
2 | 0 F 2 7  F 0 5 E  1 F 0 7  E 1 E 9
3 | 5 C 0 F  3 D E A  E 9 F 0  5 E 9 E
4 | A E 9 8  2 E C E  A E 9 E  9 E 9 F
5 | 0 5

解説

GMC-4 の「短い音」CAL SHTS および「長い音」CAL LONS は、以下のようなモールス信号に都合がいい仕様になっているようなので、そのまま用いた。

  • 音を鳴らした後、「短い音」1個分の動作停止が入る
  • 「長い音」は「短い音」3個分の長さになっている

また、「短い音」1個分の長さは約0.15秒のようである。

「R」と「FB」の切り替えは、8を足すことで同じ処理で互いに切り替えられるようにした。
さらに、「R」と「FB」で共通する最初の部分を使いまわしたり、モールス信号の終了時の CAL RSTR と「R」モードに切り替える時の CAL RSTR を重ねたりすることで、容量を節約した。

実行結果

モールス信号が遅い印象がある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?