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.

学研の4ビットマイコンGMC-4で「パワーゲーム」を作成した。

ルール

2進LEDがパワーゲージとして増減する。
たくさん光っているタイミングでボタンを押して攻撃しよう。
攻撃すると、光っているLEDの数だけ7セグメントLEDに表示された数から引かれる。
3回の攻撃で、7セグメントLEDに表示されるべき数を負にできたら成功、できなかったら失敗。

プログラム

以下のようにレジスタおよびメモリを割り当てている。(レジスタは power_loop 時点のもの)

  • A : 作業用
  • B : 残り攻撃回数のカウント
  • Y : パワーゲージの状態
  • [0] : 7セグメントLEDに表示する値
  • [0xE], [0xF] : 2進LED消灯用

MikeAssembler でアセンブルできる。

target gmc4

	TIA 0x10 - 3
	CH
	TIA 0
	TIY 0xE
	AM
	TIY 0xF
	AM
	CY
	AM ; [0] = 0xF
	AO
	JUMP power_loop_reset
power_loop:
	CIY 7
	JUMP power_loop_noreset
power_loop_reset:
	CAL DSPR
	TIY 0
power_loop_noreset:
	CAL SETR
	AIY 1
	TIA 0
	CAL TIMR
	KA
	JUMP power_loop
	CAL SHTS
stopped_wait:
	KA
	JUMP stopped_next
	JUMP stopped_wait
stopped_next:
	TIA 9
	CAL TIMR
	CY
	TIY 0
	M-
	JUMP game_clear
	AM
	AO
	CH
	AIA 1
	JUMP end_loop
	CH
	JUMP power_loop_reset
game_clear:
	CAL RSTO
	CAL ENDS
end_loop:
	JUMP end_loop

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

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

実行結果

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?