X68000でHxCを使ってみた(WIP その2 動くよ!)

  • 2010/12/12(日) 15:16:44

時間がだいぶ開いてしまいました。X68000イジってます。

って、XVIを手に入れましたw。
#PROは一時中断。


早速電源のコンデンサがパンク、液漏れですのでサイトを辿って電源修理しました。
詳細はバッサリです。
私が書くより、参考にしていただいたサイトのURLを記載しますね。
こちらです。mojiraさんのblogです。
他にもATX電源で修理ではなく、コンデンサ交換などページもありますが、田舎はそんなもん手に入らないし、コンデンサ液漏れなのでパターンの腐食もあると思われました。
#ものは写真とる前に捨ててしまいましたorz
なので、ATXで交換です。写真は近所のハードオフで手に入れた500円の電源。93wしかないですが、FDDもなくなるし余裕でしょう。
また、問題なく本体が閉じれるサイズでした。
皆さんも早めに交換しましょう。

んで、X68000でHxCその後です。
一つ前のコメントにも記載しましたが、namida88さんと一緒にHxCをイジって見ています。
HxCのフォーラムでもnamida88さんが写真付きで記載されていますが、タワー型のX68000ではほとんど同じアーキテクチャでFDDがコントロールされていると思われました。
そちらの方がユーザーも多いだろうし、喜ばれるかなと。
なのでPROは一旦中止して、初代とXVIを手に入れたわけです。
#ってPROもなんか起動しなくなったorz



ガワを外して見てみると、普通に34ピンのケーブルにて底面にあるサウンドや電源、ディスクI/Oあたりの基板と接続されており、そのままストレートで内蔵FDD2台と外付けの37ピンコネクタへ接続されていました。
適当に今まで作ったケーブルで接続してみますが、動かねーかやっぱという感じ。

ですが、ケーブルを辿ってみると、通常の34ピンFDDでは奇数ピンはすべてGND接続ですが、37ピンコネクタに1,3,5,7,9,11,13,15,17,19はX68000の拡張された信号のやりとりに使われているのか、独立して接続されていました。
この辺がPROとは違いますね。PROはFD-55GFRのピンでしたから。

37ピンのピンアサインからそれぞれのラインがどの信号線なのかは分かりました。
簡単にピンの関係を記載しますね。
FDD34ピン  外付け37ピン  信号
1      -  20                       Option Select 0
3      -  21                       Option Select 1
5      -  22                       Option Select 2
7      -  23                       Option Select 3
9      -  24                       Eject
11     -  25                       Eject Mask    
13     -  26                       LED Blink
15     -  27                       Disk In
17     -  28                       Err Disk
19     -  29                       FDD Int
あとはGNDです。
                   
んで、ふと、
「そんなもんつながなくても動くんじゃね?」
と思い立って、ぶった切ってみると問題なく動きますw

ケーブルはこんな感じで。

おっと!
ここで忘れていましたが、以前書いた変則的なジャンパの設定は不要でした。
通常のshugartの設定で問題ありません。
ケーブルはストレートの部分で接続しました。


2ドライブのゲームなんかも動きますが、

実際のディスクであれば、このように表示されるはずの「ヴァリス2」は

フリーズします。EJECT信号の処理が出来ていないのが原因かなと。

と、ここまでは前回のPROとなんにも変わらないのですが、前回の記事へコメントいただいたquewsさん、それと立花@桑島技研さんよりメールにて情報をいただきました。
ありがとうございました。お二人の情報がなければ作成できませんでした。

んで、早速X68000専用の信号をエミュレーションすることを考えました。
1.X68000側に何らかの方法でディスクの状態の信号を送る(Disk_InとFDD_INT)
2.X68000側でソフトウェア的にEJECTの信号がきた場合、これらの信号もEJECT状態となるようにする。

の2つが最低、HxCで快適にディスク入れ替えのゲームなどを動かすには必要でしょうか?
#LED_BlinkとかEJECT_MASKは不明w

1に関してはお二人の情報を元に案外簡単に作成できますが、問題は2。
最初まったくわかりませんでしたが、実際のFDDでやってみると、「Option Select n」+「Eject」をGNDに同時接続でnドライブがEJECTされました。
そのほかにFDDにEJECTなどのラインが入っているところは物理的に見当たらないので、おそらくこれをORしてあげれば、動くかなと。

んで作成した回路がこちら。

結局、ディスク挿入はボタンで操作ですw
EJECTも実装してみました。
もし作成される方がいた場合の注意ですが、左側のD-FF周りの抵抗やコンデンサは適当ですw
使用する7474によってはうまく動作しないかもしれません。チャタリング除去やパワーオンリセットするようにしましたが、この辺の電圧かな?
LEDも適当につないだだけです。抵抗などかましたほうがいいかも知れません。

作成したものはこちら。

#あんまり見ないでください。
LEDの色分けは適当です(自分がドライブ0,1を判別できるようにしただけ)
LED点灯中はディスクが挿入状態となります。
ディスク0、1に対応したボタンを押すことで、それぞれ、ディスク挿入、イジェクト状態が交互に変わります。


んで、これでお決まりのTunnels&Trollsをやってみます。
なんでかというと、これは起動ディスクで起動後、ドライブ0、1がイジェクトされ、それぞれのディスク挿入後、再度読み込みが始まりスタートするので、チェックが容易ですよ。

まずはドライブ0、1へディスクを選択。

ドライブ1は何でもいいです。イジェクトされることを確認するため。

両方のドライブをスイッチを押して挿入状態にし、リセット。

問題なくドライブ0から起動します。

しばらくしてこの画面が表示され、ドライブ0、1のディスク交換するように言われます。

この際、実際のディスクドライブだと、0、1ともディスクがイジェクトされますが、今回作成したものでも、問題なくドライブ0、1のLEDが消灯しますよ!
ディスクがイジェクトされた状態となります。
んで、

ドライブ0、1にそれぞれ正しいディスクを挿入。

スイッチでディスクを挿入状態とします。
#このとき、ディスク1のほうからにしました。T&Tはディスク0が入った瞬間、読み込みはじめるので。

すると問題なくディスク0から読み込み始め、起動しますよ!

よし、じゃあヴァリスやってみるかとおもいましたら、

イジェクトはキチンとされているのかディスクの状態はいいようでした。
しかし、

フリーズしたみたいでした。
ボタンを押して、ディスクの状態を一度、on、offしてみると、

このように表示されます。
ドライブを交換して、ボタンを押し、ディスク挿入状態にすれば、

この用に起動しました。

ちょっとよくわかりませんが、おそらくそのほかのX68000特有の信号(DiskErr、EjectMaskとか)を使って制御してるのかな?
ヴァリスは確かに実際のディスクドライブでやると、ドライブ0はイジェクト出来ないようになるので、その辺かも。
これ以上は私の情報では現在無理なので、よしとしますが、X68000のディスクイジェクトやディスク状態のチェックなどに関して情報をお願いします。

あと、まだWIPなのはそこではなく、今回作成した回路はよく考えれば、PIC1チップで問題なく作成できると思いますので、これからPICのアセンブラ書いてみようと思ってます。
#作成して欲しい方とかいますか?

さらに、これですよ。

HxCの液晶は大きくX68000にはめ込むには横幅が大きすぎます。
縦にしていれれば入りますが、文字が横向きになるため、こんな感じの小さな液晶購入しました。

今度はX68000にはめ込んで見ます。
では

この記事に対するトラックバック

この記事のトラックバックURL

この記事に対するコメント

pic ほしいですね

いつも楽しませていただいております。数年前にこういう時があろうと思いxviを購入しておりました。是非よろしくお願いいたします。

AVRになりそうです。

コメントありがとうございます。ちょっと別なところにも書きましたが、PICで20MHz動作させても、1命令4クロック必要なので、実質5MHzでの動作になってしまいます。
低速デバイスだから大丈夫だろうと、タカをくくって作成したのですが、ディスク挿入状態を返すことのみしか(5〜6命令の1Mhz程度の動作)速度が追いつかず、これに2ドライブ分のディスク挿入状態の変化をさせるスイッチの処理、EJECTが来たときの処理などを追加すると、まったく速度が足りませんでした。
なので、現在AVRで出来ないか検討中です。
というか作成してみます。
では

X68000 FDD extra functions board

Hi kitahei88, some days ago I have sent you an e-mail asking about your X68000 FDDD extra functions board, did you receive it?
Anyway I'd need some help from you since I want to build myself this board.
Thanks
Regards

  • 投稿者: Caius
  • URL
  • 2013/05/30(木) 16:07:24
  • [編集]

Thank you for your message

Thank you for you message.
I send e-mail to you.
Please check it and if you need more information , please reply me by e-mail
Thank you.

この記事にコメントする

管理者にだけ表示を許可する