misc. > アタリ仕様ジョイスティック研究 > 機器側の仕様 > PC-6001系列(Vcc:pin5, GND:pin9) > 富士通 FM-7(1985)

富士通 FM-7(1985)

ハードウェア概要

1982年秋に富士通より発表・発売開始されたパソコン。高性能・高機能ながら価格を抑えたことでヒット商品となった。CPUとしてモトローラの6809MPUを使用し、また、グラフィック用として6809をもう一つ持っていたことが大きな特徴である。機種の特徴についてはOh!FM-7に詳細にまとめられている。

コントローラ端子の特徴

1985年より販売されたFM音源カード(MB22459)には、PC-6001とほぼ同規格のコントローラ端子を2つもっている1。ピンアウトは以下の通りである。それまでもアスキーや電波新聞社から、パラレルポート経由でアタリ仕様ジョイスティックを接続するための変換アダプタが用意されていた。

1

同時期に発売されたFM-77L2はこのFM音源カードが同梱された。また、同年秋に発売されたFM77AV以降の機種については、コントローラ端子が内蔵されるようになった

pin#

Function

1

Digital in

2

Digital in

3

Digital in

4

Digital in

5

VCC

6

Digital in / Digital out

7

Digital in / Digital out

8

Digital out

9

GND

ピン8をコモンピンとする多くのジョイスティックを使用する場合は、ピン8の出力をLに設定する必要がある。

ハードウェア実装

本機のジョイスティック端子は、FM音源コントローラであるYM2203のI/Oポートを利用して実装されている。YM2203のI/Oポートの制御方法は「PSG音源の利用」を、回路や各ピンとI/Oポートとの対応についてはPC-6001, MSX, PC-9801, FM-7共通を参照のこと。

Oh!FM 1989年5月号の「FM-7シリーズ徹底活用術」によれば、FM音源コントローラを制御するためのI/Oポートアドレスは、$FD15、$FD16である2。$FD16がデータ入出力の為のアドレスであり、$FD15はコントロールレジスタである3。また、ysflight.comの「富士通FM-7用"Emergency" - 勝手にジョイスティック対応化パッチ」に記載のソースコードによれば、コントローラ端子の操作は以下の手順となる。

2

6809はメモリマップトI/O

3

$FD16が何を示すのかを指定するレジスタ

初期化

  1. $FD16に$0F(ポートBの読み書き用のレジスタ番号)を書き込み

  2. $FD15に$03($FD16の内容をレジスタ番号としてYM2203に送信するコマンド)を書き込み

  3. $FD15に$00(クリアコマンド)を書き込み

  4. $FD16に$7F(ポートBのB0〜B6を全てHに)を書き込み

  5. $FD15に$02($FD16の内容をデータとしてYM2203に送信するコマンド)を書き込み

  6. $FD15に$00(クリアコマンド)を書き込み

  7. $FD16に$07(ポートA、Bの読み書き設定のレジスタ番号)を書き込み

  8. $FD15に$03($FD16の内容をレジスタ番号としてYM2203に送信するコマンド)を書き込み

  9. $FD15に$00(クリアコマンド)を書き込み

  10. $FD16に$BF(ポートAを入力、ボートBを出力に指定)を書き込み

  11. $FD15に$02($FD16の内容をデータとしてYM2203に送信するコマンド)を書き込み

  12. $FD15に$00(クリアコマンド)を書き込み

信号出力

  1. $FD16に$0F(ポートBの読み書き用のレジスタ番号)を書き込み

  2. $FD15に$03($FD16の内容をレジスタ番号としてYM2203に送信するコマンド)を書き込み

  3. $FD15に$00(クリアコマンド)を書き込み

  4. $FD16に、ポートBに出力するデータを書き込み

  5. $FD15に$02($FD16の内容をデータとしてYM2203に送信するコマンド)を書き込み

  6. $FD15に$00(クリアコマンド)を書き込み

信号入力

  1. $FD16に$0E(ポートAの読み書き用のレジスタ番号)を書き込み

  2. $FD15に$03($FD16の内容をレジスタ番号としてYM2203に送信するコマンド)を書き込み

  3. $FD15に$00(クリアコマンド)を書き込み

  4. $FD15に$09(ポートAの内容を$FD16に送るコマンド4)を書き込み

  5. $FD16を読み込み

  6. $FD15に$00(クリアコマンド)を書き込み

4

データリードとして$01というコマンドもあるが、ジョイスティックポートリードコマンドとして$09が用意されている


コメント(0)

コメントを投稿する際はここをクリック

Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。