読者です 読者をやめる 読者になる 読者になる

麻雀コントローラのアクセス手続き。

ファミコン アセンブラ 解析


4月最初に調べたもの。
3月半ばから只管アセンブラだけの毎日で
3週間目にしてやっとアセンブラをソラで読書きできるようになってきたとき。


゚Д゚)…スイマセンデシタ!
1年前に実は挫折して高級言語に逃げたのでしたw
だからここも放置プレイっつーわかりやすい有様。
このだめ虫!


自分の場合、高級言語でそれなりにプログラムかじったからこそ
やっとアセンブラを理解することができたんだと思う。


でもねでもね?
ゲームが組めないのよーw
ムズイす;;
ゲームプログラミングの素養が非無だからなぁ…。

●麻雀コントローラのアクセス手続き

ファミコンの麻雀コントローラには以下に記す手順でアクセスを行う。
21ボタンは8bitずつ3グループ(2bit)で管理されている。
全ての入力データを取得するのに、3度のイニシャライズどキーリードが必要である。


イニシャライズ
I/O $4016 の bit2, bit0 をセット(1)する。
I/O $4016 の bit0 をクリア(0)する。

キーデータリード
入力をチェックしたいボタンになるまでI/O $4017 の bit2 を連続で読み込む。 


読込回数	ボタン
1	H
2	G
3	F
4	E
5	D
6	C
7	B
8	A


イニシャライズ
I/O $4016 の bit1, bit0 をセット(1)する。	
I/O $4016 の bit0 をクリア(0)する。	

キーデータリード	
入力をチェックしたいボタンになるまでI/O $4017 の bit2 を連続で読み込む。 	

読込回数	ボタン
1	未使用
2	未使用
3	N
4	M
5	L
6	K
7	J
8	I


イニシャライズ
I/O $4016 の bit2, bit1, bit0 をセット(1)する。	
I/O $4016 の bit0 をクリア(0)する。	

キーデータリード	
入力をチェックしたいボタンになるまでI/O $4017 の bit2 を連続で読み込む。 	

読込回数	ボタン
1	未使用
2	ロン
3	リーチ
4	チー
5	ポン
6	カン
7	スタート
8	セレクト


読み込んだ値の bit2 が 0 なら入力無し、 1 なら入力ありと言う事になる。 	
未使用の箇所は、ボタンが接続されてないので 0 が出力される。