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

2025年2月15日土曜日

X68000 Zのキーボードまとめ

X68000 ZのEAKのキーボード、色々と曰く付きだったんだけど、Z2祭りにより気持ちが高まったので、少し調べてみたのでまとめ。

調べたキーボードは

  • Hackers Edition
  • Early Access Kit
  • Product Edition
基板に書かれたバージョンは全部同じで「V1 20220823」でした。ただ、Hackers Editionだけは2つ基板に違いがあります。
  1. X68000 Zのシルク印刷がない
  2. 制御マイコン付近のR0(153)が存在しない
R0はVCC-GND間に15kΩを刺してるようです。これ、Hackers Editionでなんらかの問題に気づいて、電源ノイズが問題だと思って入れた対策かな……

そして、Early Access KitとProduct Editionの違いは、電解コンデンサの容量。Hackers EditionとEarly Access Kitは220uF、Product Editionではこれが10uFに差し替えられてる。220はUSBにはでかすぎ。刺した瞬間にコンデンサにチャージするための突入電流が大きくて、ネゴシエーション前に許された電流上限を越えて切断されてるんでしょう。実際、自分はHackers Editionをいろんな環境で使ってきてるけど、Product Edition以外でもわりと挙動は怪しくなりがちでした。

今までコミュニティでは2つの対処方法があったようで、1つはGOROmanさんのコンデンサを10uFに交換する方法、もう1つはVbusに10Ωを直列に挿す方法。後者は電圧降下0.2V程度なので許容範囲との報告だったんですが、自分が以前計測した感じだと全てのLEDが点灯すると40mAくらいまで電流値が上がるので、その時はおそらく0.4Vくらいの電圧降下となり少し不安ありです。GOROmanさんの方は大正解なんですが、もしかしたら立場上あまりハッキリ言えなかったりするかもしれないので、変わってここで大暴露。10uFに交換するのが、Product Edition化改造としては正しい方法です。おそらく公式の修理も同じ対応かと思います。

まとめると

EditionX68000 ZシルクR0電解コンデンサ
Hackers Editionなしなし220uF
Early Access Kitありあり220uF
Product Editionありあり10uF

となります。

さて、実際の作業方法です。

まず裏面の下側の3つのゴムを剥がして、隠しネジを見つけます。この3つの隠しネジと上段の穴の中にある3つのネジ。この計6個のネジを外すことでキーボードが御開帳となります。ゴムはピンセットで引っ掛けてはずせば、そんなにダメージ与えず元に戻せる形ではずせます。中央がちょっと各ネジっぽくなってるけど、ここはシール剥がさなくて大丈夫。罠です。

ネジが外れたら開いていくのですが、爪で止められているのでスマホを開く道具とか使って開きましょう。手前側からが開けやすいです。ぶっちゃけこのキーボードに限っては爪折れても問題ないのでバシッと。ただ、無理に力加えるとカバー全体がバキッといくかもしれないので、全体が歪まないよう気をつけつつ。

蓋を外したら次はこれ。写真の通りキーキャップを外してください。下にネジがあるのがこの5つのキーキャップです。見えるネジを全て外す事で基板が下面ケースから外れます。

キーキャップ外す時は道具揃えた方が安心です。自分は過去にキャップ外そうとして貴重なレトロマシンの軸をへし折ったことが何度も……こういうやつ↓買っときましょう。ほんと便利なんで。

そして最後に電解コンデンサの交換。

中央付近に電解コンデンサ、そのすぐ下にC5、R0と見えるかと思います。コンデンサはたぶんスルーホールじゃないと思うので、片足ずつハンダ小手で温めて引っ張れば簡単に外れます。それかペンチでバッサリ切り落とすのも全然あり。(2/15訂正:綺麗にハンダを剥がして確認した方の情報によるとスルーホールのようです。外しにくい時は足が抜けるよう上方に垂直に引っ張ってみて下さい。)

という感じで、作業としてはわりと簡単だけど、キーボード分解する時にケース傷つけたりとか、それなりの事は起きうるので、自分で作業する場合は自己責任で。慣れてない人は条件(前回のクラファンでEAK、今回のクラファンでZ2購入)を満たしてれば無償で直してくれるみたいなので、無理せず頼んじゃった方が良いと思います。一日たりとも手放せない or 魔改造大好きって人はこの方法でやっとけば、とりあえず電気的にはオマ環にはなりにくいのでないかと。

2024年2月29日木曜日

X68000でBlueSCSIを使ってみる

修理したSASIポートでSxSIの力を借りてBlueSCSIを繋いでみました。BlueSCSIにはパリティを無効化する設定があり、もともとX68000+SxSIで動くという報告があったので、それの追試験と、容量の限界に対する詳しい情報についてです。

まずSxSIですが、はうさんのch30_omakeの最新版をこちらから頂き、SRAM常駐させてます。

Phantom搭載機なのでfull版を入れてます。これでSASIポートに繋がったSCSIデバイスからbootできるようになりますし、SxSIのドライバなどをconfig.sysに登録しなくてもSASIポート版SCSI IOCSが利用できる状態でbootします。この状態だと起動時にSCSI IOCSが見えるからデバイスドライバはhumanのやつが利用されるのかな?

ちなみにSCSI 0番からはbootできませんでした。デバイス名も取得できず名前が一覧に出ませんでした。本来SxSIでは番号を空けずに0番から受けてく事が推奨されているので、0番が使えないのは030_omakeの制限なのかもしれません。この点については詳しく調べずに0版はDynaPortをアサインしてしまいました。これについては今回は触れませんが、SCSIに繋がるWIFIポートになります。READ/WRITEしたものがイーサーネットに出入りするので、将来的にはNeptune互換で使えるようドライバを書きたいです。

で、今回詳しく記録に残すのはハードディスクやファイルシステムの容量関係の話。SxSIやSCSIで利用できる最大サイズやファイルシステムの限界の話です。

SCSI IOCSの仕様的にはブロックサイズ256B/512B/1024Bがサポートされているようです。指定可能な論理アドレスサイズ×ブロックサイズでアクセス可能なHDDの範囲が決まるので、一番大きな1024Bを設定するのが良いです。BlueSCSIではファイル名で指定するのでHD1_1024.HDAみたいなファイル名になります。

またSCSIではREAD6/WRITE6/SEEK6という21bitアドレス指定のコマンドグループと、READ10/WRITE10/SEEK10という32bitアドレス指定のコマンドグループがあります。これらはSCSI IOCSではREAD/WRITE/SEEKとREADEXT/WRITEEXT/SEEKEXTとしてAPI化されているようです。動作をみた感じではアクセスする範囲に応じて必要ならEXT系を利用して*10の方のコマンドが出てきており、32bitフルにアクセスできるのではないかと思います(注1)。つまり4GB x 1024Bなので4TBまではSCSI的にはアクセス可能。

一方でファイルシステム上の制限もあります。HumanはFAT16を採用しているため、クラスタアドレスは16bitで指定できる範囲に限られます。4GBの仮想HDDに対してformatコマンドを使って最大サイズのパーティションを確保したところ、クラスタサイズは65535Bでフォーマットされました。つまりは4GBフルに使えてます。また同じイメージをSxSIのscsiformatでフォーマットしたらクラスタサイズは倍の128KBになり、これも正しく使えているため、おそらく4GB以上のディスクでもクラスタサイズが適切に大きくなって扱える可能性が高いです。軽く確認した範囲では16GBを超えると認識時にセクタサイズが大きすぎると言われてリセットになります(注2)。これも厳密には16381MBが限界だったと思います。ただ、4GBが32bitで表現できる限界なので、これを超えるとアプリケーションレベルで色々なところに弊害が出てきます。例えばディスク空き容量なんかは正しく表示できなくなります。よって、安全に使うなら4GB(MB指定だと4095MB)で使うのが無難なのかなぁ、と思います。

あと実機上での利用では関係ないですが、BlueSCSIのイメージをDiskExplorerを使ってWindowsから読み書きしようとした場合、scsiformatでフォーマットしたイメージはパラメータを調整しても読めませんでした。SCSI搭載機でformatを使って初期化したイメージはプリセットで読めているので、scsiformatは避けるのが無難かもしれません。原因は深く追っていないので、倍になったクラスタサイズのせいかもしれず、別のサイズのイメージだったら違う結果になるかもしれません。またDiskExplorerも古いソフトなので32bitの4GB制約があるかもしれないので、イメージからのデータ読み書きには4GB以下のイメージを使うのが無難でしょう(注3)。

以下、立花さんに教えてもらったLIBCのソースに含まれるSCSI.DOCを読んで判明した(というか大昔に読んだ記憶あったので思い出した?)情報です。

(注1)SCSIコマンドを発行してディスクを読むドライバはハードディスクの先頭付近に置かれているようです。なので32bitアドレス版のコマンドを使っているかどうかはフォーマットしたプログラムに依存するかもしれません。

(注2)この制約はformat.xが書き込むドライバの制限だそうで、LBAが24bitに制限された結果のようです。確かにこの実験はXVIでやっているので、format.xのドライバに依存してそうです。

また、format.xでフォーマットした際に1GB以上のHDDから起動するためには田圃さんのGOVERHD.xが利用できるそうです。自分はch30_omakeからこのパッチなしで起動できてしまっています。田圃さんのSCSI周りの数々の功績には頭が下がります。BlueSCSIも田圃さんのArdSCSinoのforkのforkです。

以下、田圃さんのコメントに基づく注釈です。

(注3)SEEKがsigned 32bitなので、2GBを超えるファイルの操作は危険が伴います。より安全を見るなら2GBが無難です。

2024年2月28日水曜日

X68000 EXPERT SASIポートの修理

昨年にX68000 修理にて復活!という投稿をしました。

電源をATX電源化、電池はケース化したうえで交換、VRAMが1つ故障していたので交換したところまでが修理の内容でした。ハードディスクはXVIを使って吸い出したもののEXPERTのSASIポートではうまく動作しないままでした。今回はその残るSASIポートの修理についてのメモです。

SASIポート周りについてはOutside X68000付属の初代機の回路図が参考になります。各ポートの制御はIX0909というカスタムチップが1つ鎮座しており、ソフトに見えるレジスタはおそらくその中に入っています。SASIはハードでは制御らしい制御はなく、このカスタムがレジスタアクセスに応じて直接SASIバスの信号を出し入れし、その外にある回路はバッファ程度なので、壊れるとしたらカスタムかバッファに使われているロジックIC、後者なら交換で簡単に直せるはずです。

初代機とEXPERTではカスタムチップの型番とピン配置が少し違います。ロジックICも使っているピンが違ったりはするのですが、基本的には同じ構成です。データバスは74LS642で出し受けしており、双方向バッファの方向は外から入ってくるI/Oで決まりますが、開放時は出力方向になっています。制御信号のうち入力は74LS19がシュミットトリガーで受け、出力は74LS38でオープンコレクタ。すべての信号がロジックの内側は5V、外側は約3Vで動いており、抵抗で分圧したうえでpull-upされてます。

場所的には底面基板に各種IOやFM音源がいます。CPU側のメイン基板から来てるケーブルにバスが全部載っており、電源側の基板からは電源と各ポートの入出力が繋がってます。Sと書かれた2本線がサウンド出力で内蔵スピーカーに向かっているようです。

投稿でカスタムと642の場所を説明してますが、さらに38は642の右に2つ並んでる38のうち左側のものがSASIとカスタムの間にあるやつです。今回は642にあたりを付けて交換しましたが、制御がおかしい場合にはこの38を交換する必要があるかもしれません。他にはアレイ抵抗が壊れてショートしていないかなども注意した方が良いと思いますが、底面基板なので電源入れて直接電圧を確認するのは難しいです。もし怪しいと思ったら、外に出てるSASIポートの電圧で確認するのが良いと思います。

データバスに関してはソフトでレジスタ叩いて出力の変化を見るのが良いかもしれません。

カスタムは出力中でもピンの電位を読み出せるようです。つまり、書いた後に読んだ値が実際にカスタムと642の間のデータバスの電位になります。ここで値がおかしいようなら642が外向きになっていなかったり、バッファが死んで常にGNDやVCCに張り付いているような状況が疑われます。一部張り付いているなら642を、全部張り付いてるなら38から入ってるI/Oを疑うのが良いかもしれません。またこの値は反転した形でSASIのデータバスに出ますから、ポートの電圧を測る事で642経由で期待通りの信号が出てるか確認できます。bitの値が0なら約3V、1なら約0Vですね。

今回は交換するまでは良かったんですが、交換時にソケット化したせいでICの位置が高くなってしまいシールドに接触するという大失態を侵しました。場所的にまさにシールドが出っ張っている位置なので要注意です。C1とか81あたりしか書けなかったら同じことをやらかしてる可能性大(笑)

という事でSASIポートが直ったのでSxSIを使ってBlueSCSIを接続するわけですが、それはまた別のエントリで詳しく書こうと思います。

ちなみにSASIのバスを3Vで駆動しているけど、これは何もバスが3V論理だという事ではないようです。SCSIの仕様書をみると5Vも許容範囲ですし、EXPERTや初代の回路的にも5Vを受けられるように設計されてます。3Vでpull-upしているのはターミネーターの推奨値だからかな?初代機の抵抗値はSCSIリファレンスの分圧でターミネートする時の推奨値でした。EXPERTはもう少し小さい値で近い比率で分圧してたように思います(具体的な数字はメモしてなくて忘れてしまった)。

2023年1月30日月曜日

X68000 修理にて復活!

はじめに

X68Z ハッカーズエディションを試せる事になったので、それに先立ってずっと故障したままだったX68k EXPERTの修理をし、無事元気になったのでその報告です。

壊れた経緯は例にもれず電源です。ただ大学のサークルの部室に置き去りにしてたのが、煙を吹いて動かなくなったという連絡があって。それを回収してそのまま20年近く放置してたのかな?それ以来、ハードディスクも火を入れずにずっとしまい込んでた。

ちなみに他にcompact XVIというかredzoneも所有していて、あとはサンデーネットが閉じる時にもらったXVIを所有してますが、両方とも電源が理由で死んでました。XVIも電源修理であっさり直ってますが、特に新しい話題はないのでEXPERTの修理の話を発掘しやすいようにまとめとこうと思います。

まずは電源から

という事で、まずは電源交換の本スレがこちら。

BEEPさんで購入した、同人サークルさんがセットで用意してくれたPico PSU換装キット。今回は日和ってまずは確実に動く状態にしようと安全側に倒しました。キットがなくても12V、5V、-12Vを拝借できれば良いので、この手のがなくなっても最悪どうにでもなるのかな、と思いました。今なら修理方法も世の中に出回ってるし、ヤフオクで交換部品のセットを安くまとめてくれてる人もいるので、そういうのを利用すれば数千円くらいで直せるんじゃないかな?Pico PSUだと5Vの供給が足りないかもアドバイスもあったので、Phantomで強力なラズパイを使うとか、拡張ボードを挿してるなんて場合は電源を修理した方が良いのでしょうね。

エラーが発生しました。リセットして下さい。

電源は入ったものの最初みたメッセージはこれ。やっぱり何か壊れてる?

って事で、この時点で一番怪しいのはSRAMのデータが飛んでる事態。まぁ、長年放置してたわけで、当然バックアップの電池は死んでますね。SRAMの内容が壊れてるとブートデバイスの情報も消えてるので、結果としてさっきの画面に飛ぶのかな。なのでOpt.1を押してFDから強制起動を試すことで先に進めます。まぁ、普通はここでFDDが死んでて起動できない気もしますが。しまい込んでたと言っても、ずっとマンション内で空調の効いた仕事部屋に安置されてたので状態は良かったようです。

電池交換

続けて電池交換はこちら。EXPERTだと+側の2端子のうち1つはN/Cなので、パターンを見て繋がってるほうにハンダしてあげて下さい。使ったのはCR2450だけど3Vならなんでも良いのかな?

電池が入ればOpt.1でHumanなりを起動してswitch.xで設定してやればエラーは出なくなります。

テキストVRAMの交換

何事もなければこれで修理完了だったんでしょうけど、残念ながら他にも壊れてました。

こんな感じで画面の上の方に点線が現れます。これだけなら少しノイズがあるだけで我慢できますが、テキスト面で画面上方となると、スクロール等で画面中にコピーされまくります。特にテキストはピクセル単位じゃなくプレーン方式なので、特定のプレーンだけゴミが撒き散らされて。用途によってはパレットをうまく使ってマスク用プレーンにしてたりするんで文字がまったく見えなくなっちゃったりします。

という事で奮闘開始したのがこのスレ。

まずはメモリーテストでテキストVRAMでエラーするのを確認。M51C262相当品は新品入手は難しそうだったのでAliExpressでリサイクル品を探して発注。HM53461ZPを見つけて購入しました。ワードアクセスと平行してシフトしながらビット読み出しもできる感じのマルチポートなのかな?こういうタイプのメモリは初めてだったので、変換ボード組んで載せ替えるとかは避けました。

メモリが届いてからは実際に壊れてるチップの特定作業。XVIとかはサービスマニュアルが公式から公開されてるけどEXPERTにはないんですよね。ただまぁ、そこまで変わってる部分じゃないだろうって事でXVIの回路図は確認しました。それでテキストVRAMはこの4bitのチップを4つ並べて16bitにし、各チップのメモリ空間がちょうど1プレーン分ある事がわかります。なので、それをx4で4プレーン分載せて合計16枚でテキストVRAMを構成してる。シルクで書かれてるIC番号は当然XVIとは違うけど、まぁ同じような順番だよねっていう想像もできるので、若い番号からプレーンごとに並んでるんだろうな、という予想もできます。

実際に壊れた箇所は自分でテストプログラムを書いて詳細に調べました。$00e60e00 - $00e60fff にかけてbit 10-11の2bitがhighにならなくなってたので、最終プレーンでbit 8-11を担当してるチップを交換すれば良い事になります。プレーン内の並びは回路図の信号名で当たりをつけてLSB側から並んでると判断。という事で、16個中の15番目のメモリが怪しい。

VICONから配線を追うことができればEnableがどこに繋がってるかで並びは確定できるんですが、拡張スロットの下にあって調べられませんでした。拡張スロットって外せるんですかね?

そんなわけでメモリ交換はシュッ太郎の出番。ただ電源ピンはかなり苦戦します。昔は原因理解してなかったんだけど、これって当時の基板はthermal reliefとか考えてなかったからですよね。ベタで繋がってるんで熱が逃げちゃうから基板全体を温めるか火力を上げるか、みたいな。この辺はベテランの人のノウハウを知りたいところなんですが、自分はわりと細いドリルで掘りがち。今回もチップは抜けたけどGNDの穴は再び塞がっちゃって。グリグリやって穴を確保しました。

という事で、EXPERTは左からplane 1の3:0、7:4、11:8、15:12、plane 2の同じく、plane 3、4って順に並んでるので、もしテキストVRAMが壊れて交換が必要って人がいましたら参考まで。

ハードディスク

SxSIでSCSI読めてたはずなんですが、どうもsusieで認識しない。ハードディスクも怪しいし、68も怪しいし、加えてPhantomを載せてたから問題の切り分けが難しい。という事で、ハードディスクはXVIを直してそっちで救出しました。SCSIボードも持ってたはずなんだけど、誰かにあげた記憶もあって見つからず。本体にSCSIついてるXVIで面倒だけど確実にチェックする方法を選びました。

ハードディスクのサルベージに関してはPhantomさんが本当にスグレモノで。SDカード上に仮想ディスクを作ってくれるので、ハードディスクが無事認識したらmintで仮想ディスクに全部コピーしました。奇跡的にも全部読めたんですよ、もうびっくりです。吸い上げたディスクイメージはクラウドとバックアップストレージに入ったので、たぶんもう僕の命より堅牢。

吸い出し後はPhantomを今回修理した長年の相棒でもあるEXPERTに戻し本格的に再運用を開始しました。

SxSIはおそらく自作で追加したパリティ回路の74が壊れてるんじゃないかと予想。バスリセットとかは飛んでディスクは反応してるんですよね。パリティエラーでネゴれてない印象でした。