ぺるもさんから送って頂いた日立 MB-S1用ジョイスティックカードの写真から回路トレースに取りかかりました
以前、中部本多通商の拡張PSGカードにあるジョイスティックポートを調べたことがあるので、同じような回路かと思っていましたが、全く違うものでした。
中部本多通商のPSGカードはAY-3-8910のI/Oを使いトリガ1,2を出力として使うことができる回路に
なっていましたが、こちらのジョイスティックカードは入力だけのようです。
回路のトレースも一通り完了しましたが、今回は実物をお借りせず写真だけのトレースなのでIC下の
見えない部分は感でトレースしました^^;;;
トリガの割込み入力部分のCR回路が一部見えない部分があり、心配なのでブレッドボードで検証してから製作に取り掛かります
トリガー部分の回路はこんな感じでした
ジョイスティックのAとBはPA6で選択しています。
入力とLS14で整形された出力をみてみると
パルス幅20μSのパルスとしてPIAのCAピンに入っているようです
この測定を見る感じではPIAに対して20μSという十分な長さのパルスが出ていることとLS14の立下り検出レベル0.8Vを少し下回るところまで放電されているので一見よさそうに見えるのですが、10回に3回程度は立下がり検出に失敗します。
プルアップ抵抗が100KΩ+47Ωなので、47Ωを無効にしてみると
こんな感じで立下り検出の失敗は減りましたがパルス幅は約25μSになりました
これでも立下り検出に失敗することがあるので、何が正しいのかよく分からなくなってきましたが、波形を見た感じでは47Ωの抵抗が付いている方が自然な感じがします・・・
とりあえずはトレースしたままの回路で作ってみて、ダメなら47Ωをジャンパできるようにしてみようかと・・・
中部本多通商のIFとは別のジョイスティック入力回路ということで、これが10/AVと同じ回路なら10/AVレプリカ作成が一歩前進したような気もしますが、10/AVの情報は少ないので真偽は不明です。
10/AVの資料をお持ちの方、情報交換をお願い致します^^;;;
そんなS1用ジョイスティックカード、回路トレースの記録・・・
2022-07-03追記
このS1用ジョイスティックカードは日立純正ではないことが分かりましたので、投稿を一部修正しました^^;;;
View Comments
10/AVはおろかS1自体も持ってはいませんが。
10/AVはタブレットに対応しているとのことなので、このインターフェースカードでは動作しないように思えます。このカードはピン1-4、6、7が入力、5がVcc5V、8と9がGNDであるように思われます。これに対して、タブレットはピン6-8を出力として使うためです。
タブレットはお持ちとのことなので、付属のテストプログラムを解析すれば何かわかるのでは無いかと思います。10/AV専用でシステムコールが拡張されていたりするとお手上げですが。
そういえば、10/AVは手書きタブレット対応でしたね。完全に忘れてました^^;;;;
8年前に中部本多通商のPSGカードにあるジョイスティックポートお借りしたときに試したことがありました。
そうなると10/AVのジョイスティックポートは中部本多通商カードとも今回のカードとも違う感じっぽいですね。
http://asakita.net/kabekin/2014/09/8992.html
あと、トリガ1の割り込みは何のためにあるのか、というのも気になります。単純にジョイスティック入力として使うのであれば1/60秒ごとにポーリングすればよく、割り込みを使う動機が見出せません。
パッと思いつくのはライトペンや光線銃として使うことを想定していた、でしょうか。
そうですね。
レベルの信号はPIAのAポートで取り込んでいるようなので、CAポートで入力されている信号の使い道としてはBASICのSTRIG関数の機能3,4でトリガ検出として使っているのではと思いましたが定かではありません・・
私のS1にはジョイスティックポートが付いていないので気にしたことがありませんでしたが、この機会に増設できそうなので、色々調べたいと思います^^
各コントローラ端子のトリガ1の入力結果がそれぞれCA1、CA2に出る回路構成でしょうか。
であるならばたとえば対戦型クイズゲームのように両コントローラの早押しを検出したいといった用途も考慮されていたのかもしれません。PIAのデータシートを斜め読みしてみましたが、割り込み処理でコントロールレジスタ($FE41)のBit6、7を読めば検出できそうに見えます。
あと、LS14は6回路ですので、1つをトリガ1の割込み処理用に使っているとすると、トリガ1:PA5のみON=HIGH、それ以外はON=LOWという実装ということになりますね。
また、S1のBASICやシステムコールがPA5と割り込みのどちらでトリガ1を検出しているかですが、「トリガ1を押したときCA1/2にパルスが出るがPA5は変化しない(LOWのまま)」という回路でSTRIG関数を使ってみればわかるような気がします。
はい、その通りです^^
回路をトレースした感じでは各コントローラのトリガ1をワンショットのパルスで取出し反転してCA1,2に出しているようです
今回は基板が小さいので基板をお借りせずに写真だけでトレースしたので、一部のトレースは予想です。
実際に作ってみて実験してみると何度か手直しが必要かもしれません・・・^^;;;
BASICやシステムコールの実験は回路を切り替えながら色々試して投稿予定です