ラベル 9801 の投稿を表示しています。 すべての投稿を表示
ラベル 9801 の投稿を表示しています。 すべての投稿を表示

2024年3月14日木曜日

3.5"ディスクドライブの修理

最近やった3.5"フロッピードライブの修理について。

ディスクシステムやMSXだと決まってゴムベルトの劣化が問題なんだけど、今回はヘッドだったので少し記録を残します。たぶんドライブがベルトレスでのダイレクトドライブタイプかな?見当たらなかったってだけなので、もっと分解したらゴムが出てくるかもしれないですが。

もともとX68k compact向け3.5"メディアを読もうと思ったら、USBで持ってたドライブが1.44MBフォーマットしか対応してなくて困った、というところから。国産機では1.25MBフォーマットが主流でPC/AT機で使われてた1.44MBはIBMフォーマットとか言われてたんだけど、今ではそっちがグローバルスタンダード。3 mode対応とかうたってるドライブでしか読めなくなっており、最近の新品だと無理なのかな。まだ辛うじて2000年前後の中古USBドライブが手に入るみたいなので、そっちいくのが一番簡単。

んで、思い立ったが吉日で直ぐにでも読みたかったので、オークションで数千円で入手してたPC-9801用の外付けドライブのメンテを思い立つ。買った時に試した感じではほんのり読めたり、エラーコードA0やB0のCRCエラーが出たり、C0でセクタが見つからなかったりだったので、ヘッドの掃除くらいで治るんじゃないかとは思って放置してた。

こいつちゃん。わりとオークションで見かけるモデルだと思う。これに1.44切り替えスイッチついてるやつが上位モデルか後期モデルか知らないけど、ロゴマークの色が違うやつも良く見る。

分解は素直にネジを外してけば、混乱する事もなくここまでは進む。

真上からだとわかりにくいけど2段積みがセットネジ止めされた状態。これを1台ずつ外して掃除。

ここだけ爪で引っかかってるのでピンセット使って外してあげる必要があった。これだけでヘッドにアクセスできるようになるので、無水エタノールと綿棒で拭き掃除。

こんな感じで仮組みして動作を確認しつつ。電源入れたまま、ケーブル差したままの掃除は各自安全と思う範囲で自己責任のもとに……自分はドライブ全体の電源落としてから、ドライブユニットのケーブル抜いて取り外して作業してました。

そんなに何度もトライ&エラーする事もなく復活。読めない時は大事なディスク使うのは控えた方が良いかも。最初に読めなかったディスクはドライブ復活後も読めない事が多い気が……。今回最初に試してたメディアも見た目なんの傷もないのに読めるようにはならなかった。

って事で、無事に外部3.5"から起動できたので、本来読みたかったメディアをイメージ化して、5.25"に書き戻して68から利用して一件落着でした。

そうそう、後から当時のクリーニングディスクを入手しました。楽器屋でまだ新品が当時価格かな?で売ってた。ヤマハ製です。これがあれば突っ込んで電源いれるだけで直せてたかも。磁気ディスク、調べるほどに当時思ってたほど繊細じゃなくて、ヘッドもカセットテープのヘッドみたいなやつで上下から挟んでディスクをぐるぐる回転。え?これで傷つかないの?って感じ。3.5"もバラして円盤に不織布を貼り付ければクリーニングディスクになるかも。必要ならエタノール吸わせて。



2024年1月12日金曜日

PC-9801RAにBlueSCSIを繋いでみた記録

年末年始、集めたまま火を入れてない物の中で、特に興味の高いものを整理してました。PC-9801RAもその中の一つ。8001もそうでしたが、NECのパソコンはほとんど触れずに来ていて、大学の時に譲ってもらったPC-486で(いや、それはNECじゃない……)少し曲を作ったりはしてたんですが、身内の手違いで破棄されてしまって(良くあるような悪い話ではない……はずです)。詳しい資料や当時の情報を持っていないので手探りで環境構築してます。

その中でも今となっては厄介なのがハードディスクの整備。とりあえず今から物理ドライブ使うのはデータ消失が怖いし、ネットワークないマシンだとデータのやり取りも大変。という事で、変換器使った何かを考えていたのですが、9801系で有名どころと思われる変換番長が半導体不足で在庫がない状況だったので、せっかくだから少し冒険。オープンソースなら最悪どうにでもなるだろって事でBlueSCSIを選びました。設計データまで公開されてるので自分で基板から作っても良いのですが、最初からそれだと問題切り分けが大変です。国内ではヤフオクで完成品を公式に扱ってる人がいるので、そちらをあたってみる事にしました。自分はmac用のDB25直差し用を購入してます。というのも、自分も元macユーザーで将来はそっちでも使いたいってのと、当時使ってたDB25 to アンフェノールハーフピッチのケーブルが手元に残っているのと、さらにDB25のオスメス変換器が安く売っていたのと。接続は

98本体(アンフェノールハーフメス)⇔ケーブル(アンフェノールハーフオス→DB25オス)⇔変換器(DB25メス→DB25メス)⇔BlueSCSI(DB25オス)

こんな感じ。手持ちが違う人は違うやつ選んだ方が良いかもしれません。

んでBlueSCSIなんですが、なんと元はたんぼ(TNB製作所)さんが作ったArdSCSinoだそうで。Arduinoで動いていたものがARM(STM32)に移植されArdSCSino-stm32となり、そこから派生してBlueSCSIが出てきたようです。現行のv2はSTM32から更にターゲットを変えて、Raspberry Pi Picoで動いてます。さらに最近ではPico Wを使うことでWIFI機能を使い、SCSIバス上に仮想ネットワークカードを繋げられるようです。この機能はホスト側でドライバを書く必要があるので、現状では開発者がメインターゲットにしてるMacintoshのみの機能かな、と思います。が、ゆくゆくは国産レトロ機でもドライバが出てくると面白そうです。

開発者が主にMacintoshユーザーなので、その他の環境への対応がどうなったのか心配なところでもあるのですが、対応してるSCSIコマンドは他のプロジェクトより多そうなので、最悪ちょっとコードいじればなんとかなりそうな感じがありますし、互換性リストではX68000なんかも入ってます。標準SCSIインタフェースでも動くし、旧機種のSASIでもSxSIを使えば本体改造なしで動きそうです(サンプルではパリティを無効にする設定が入ってます)。

で、詳しい経緯に興味ある人はこちらの一連のポストを見てもらうとして、とりあえず無事に動作したので設定をまとめようと思います。

98だとSCSI I/Fも大量に出てると思うのですが、自分が成功したのはIF-92Bになります。が、98固有の問題は内包してるので、他のボードでも状況は似たような感じじゃないかと思います。NEC純正はベンダー設定が必要かも。

[SCSI]
; Debug=1
; Vendor=NEC
System="Generic"
Quirks=0
DisableROMDrive=1
SectorsPerTrack=8
HeadsPerCylinder=32

この中で必須だと思われるのは最後の2つです。この辺りは98固有の事情に関係してるようで、SCSI BIOSのアドレス指定がLBAではなくCHSになっている事に起因するかと思います。これらの情報はNEC純正ではSCSI非標準の問い合わせで得るようですが、サードパーティー製や後期純正だと内部的にこれら8/32の値を想定して変換を行うようです。SCSI BIOSが純粋に全部の変換を行いLBAでディスクにアクセスしてるなら設定不要で動いても良さそうなのですが、少なくともIF-92Bではここを違う値にするとFORMAT.EXEが0除算で落ちるようになります。

また設定以外にディスクイメージも必要ですが、注意点としては

  • セクタサイズは512バイトにする事
  • イメージサイズは8×32×512の倍数にする事
  • 大きすぎると認識されないのでインタフェースの限界にあったサイズにする事
を満たす必要があります。セクタサイズはファイル名に埋め込むようになっているので注意が必要です(設定でBlockSizeを書いても良いかもしれませんが試してません)。この辺りはソースコード見れたので調査がはかどりました。やっぱりオープンソース選んで正解。

% dd if=/dev/zero of=HD0_512.hda bs=131072 count=4096

自分はこんな感じで作りました。Linuxやmacなら同様に、WindowsならWSL使えば同様にできるし、中身空で良いので他にも色々と方法はあるかと思います。

ちなみにcount=4096はIF-92B v1.10の限界っぽいです。サイズとしては512MBですね。1GBまで認識はするようなのですが、領域確保できるのが512Bまででした。巷では1.01や1.20も出回っているので、それぞれ限界は違うかと思います。1.20だと2GBまでいけるって話も見かけます。BIOSパッチ当てられれば良いんだけど、ここはホームグラウンドじゃないから、ひとまずこれで様子見です。

ちなみにボード自体もDIPSWがサウンドボードとぶつかっていて変更したり、画面に何も出ない設定になっていたり、そもそもコンデンサもげて挙動自体が怪しかったり……がスタート地点だったので、色々とリスト減らした上でなんとか正解にたどり着けた感じでした。