スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FreeDOS(98)に外部ストレージを認識させる その1

FreeDOS(98)をPC-98実機にインストールしましたが、実際に運用するためにはアプリケーション等を追加する必要があります。
この作業はWindows PC上で行った方が楽なのですが、データサイズがかなり大きくなるため、実機への転送手段が必要となります。

内容自体はMS-DOSにも使える内容となりますが、FreeDOS(98)向けなので、無償のソフトウェアだけで実現することを条件とします。

転送手段としては以下が考えられます。

[1] 光ディスク経由で転送

→ FreeDOS(98)で使えるような光ディスク書き込み用のアプリは無いと思われますので(※1)、実機からの書き出しはできず、Windows PC -> 実機のみとなりますが、標準でCDドライブが乗っている機体であれば、CD-Rで転送するのは追加コストがメディア台のみとなります。
CD-RW、DVD-RWが認識できるドライブに換装されているのであれば、メディアも使い回せてなおよいです。

注意点としては以下となります。

・ISO 9660のディスクアットワンスのディスクとして作成する(マルチセッションは認識できない可能性があります)

・DVDを使う場合は、2GB未満とする

(※1) PC/AT互換機のDOS向けにはいくつかあるようですが、未確認です。

[2] SCSI接続のMOドライブで転送
→ MOであればディスクコピーで転送できるので実機とWindows PCの間でファイルをお互いにやりとりできます。
PC-98のデータの受け渡し方法としては現役時代から主流の方法で、利便性は高いです。

注意点としては以下となります。

・Windows10で現実的に扱うことを考えると、PC-98側にSCSI接続のMOドライブが、Windows側にUSB接続のMOドライブが必要

・すでに新品ドライブが無く、中古入手になるが、故障品に気をつける必要がある

・USB MOは世代的にUSBフルスピード接続のものがあるが、遅いのでUSB2.0 High Speed対応のものを推奨。また、メディアの特性上書き込みが遅い。

640MB以上のメディアはセクターサイズが2048バイトになって、MS-DOSだとOSが認識できずにドライバが必要となりますが、FreeDOS(98)ではセクターサイズ512バイトのメディアでもドライバが必要なので気にする必要は無いかと思います。
→ と思いましたが、DOS向けのソフトウェアでセクターサイズ512バイト以外の媒体をFDISK形式で使うと互換性問題が出そうな気がしますので128MB/230MB/540MBのメディアを推奨します。

[3] SCSI接続のPCカードリーダーで転送

→ これはSCSIのリムーバブルメディアとして認識されるのでMOと同様にディスクコピーで転送できるようになり、Windows PCと実機の間でファイルをお互いにやりとりできるようになります。
PCカードアダプタを使えばCFやSDカードが使えますので、メディアの入手性とWindows側のカードリーダーの入手性は非常によいです。
注意点としては以下となります。

・DOS時代のドライバやアプリはFAT32に対応していないものがほとんどなので、FAT16でフォーマットする
(FreeDOS(98)自体がFAT32を扱えるかは未確認)

・SCSI接続のPCカードリーダーは中古品の入手となるが、価格が高くなりがち
(IOデータ製のCARDDOCK-EX/SC、メルコ(現Buffalo)製のMCR-S、MCR-S2等)

・新品で購入可能なものもあるが、基本内蔵向けとなるため、外付けで使うにはMOのケース等を流用する必要がある
(Stratos Technology社製のものが該当しますが、ここで対象としているのはリムーバブルメディアとして認識されるデバイスとなります。HDDとして認識されるデバイスは対象外です)

・PCカードアダプタはCF用の方がSDカード用よりも安い(構造上当然ではありますが)

[4] LAN経由でFTPで転送する

DOSのパケットドライバが提供されているLANカードがあるのであれば、TEENを組み込むことでFTPが使えるようになります。
便利ですが、CPUの遅い機種ですと速度がでません。

[5] RS-232Cでシリアル転送する

Windows PC側にUSBシリアル変換ケーブルをつなげば、RS-232C同士を接続してファイルの転送ができますが、転送が遅く時間がかかります。

[1][2][3]の方法に対応してみることにします。

その2に続きます。

FreeDOS(98)を実機で動かしてみる その2

以前(2014年7月)のエントリでFreeDOS(98)を実機で動かす実験をしていましたが、その後開発が進んでいることに全く気がついておりませんでした。

SAVA様が開発されているものが下記のURLで公開されておりますが、非常にありがたいことに、フロッピーディスクやSCSIハードディスクがサポートされているうえ、MS-DOSとの互換性もかなり向上していて動作するアプリケーションもかなり増えているようです。

http://bauxite.sakura.ne.jp/software/dos/freedos.htm

実機での動作も期待できるので、早速試してみます。

フロッピーディスクイメージが公開されていて、フロッピーディスクとハードディスクのフォーマットツールとSYSコマンドが格納されておりますので、まずはフロッピーディスクイメージを実フロッピーディスクに書き戻すところから始めます。
方法はほかにもあるかとは思いますが、以下の環境で実施しました。

作業PCのOS : Windows 10 Pro 64bit
フロッピーディスクドライブ : TEAC FD-05PUW (3モード対応のUSB FDD)

使用したアプリケーションは以下となります。

・format2hd (上記FreeDOS(98)の配布ページから入手)
・DD for Windows (http://www.chrysocome.net/dd)

コマンドラインから以下を実行することでディスクイメージを実フロッピーディスクに書き戻せました。(FDDがAドライブの場合)

format2hd a: /F:1.23 /VERIFY
dd if=fd98_2hd.img of=\\.\a: bs=1232k

FreeDOS98_FDWrite.png

このフロッピーディスクを使用して実機のHDDをフォーマットすることになりますが、この作業は実機でもエミュレータでも同じなのでエミュレータで説明します。(手抜きですみません)
インストールする実機としてPC-9801BXを対象としますが、実機に合わせてIDE HDDが1台搭載されている環境としています。

フロッピーからブートすると以下の画面となりますが、この時点ではHDDは認識されていません。

FreeDOS98_FD_Boot.png

以下のコマンドを実行してHDDのフォーマットを開始します。
BTNPART.EXE

FreeDOS98_HDD_Format_01.png

80と入力してデバイスを選択し、領域の消去に同意し、領域名を入力(省略可)するとパーティションの作成とフォーマットが実行されます。

FreeDOS98_HDD_Format_02.png

リセットボタンを押して再起動し、以下のコマンドを実行します。
(FDDが2台でFDDからブートしているので、HDDはCドライブとなります)

SYS C:

実行結果は以下となります。

FreeDOS98_SYSCMD.png

フロッピーディスクを抜いてリセットボタンを押すとHDDから起動します。

FreeDOS98_HDD_Boot.png

以上でHDDからブートするようになりました。

以降はアプリケーションを追加しますが、作業PCからデータを転送するのにフロッピーディスク経由というわけにもいかないので、大容量ストレージを実機に認識させることとします。

SST-RL05のType-C USBコネクタとUSB-019の接続

SilverStone社製のPCケースSST-RL05のフロントUSB Type-Cコネクタとマザーボード上のUSB 3.1 Gen2ヘッダを接続するために、USB-019を改造してみました。
あまりにも用途が限定されているため、参考にする人はいないとは思いますが、本改造は私の手持ちの製品ではうまくいっただけであり、製品ロットによっては回路変更されているなどして同じ改造が適用できないかもしれませんので、参考にする場合は回路をよく確認したうえ、自己責任でお願いいたします。

改造ポイントは以下の3点になります。

[1] 10kΩのチップ抵抗2つを外す
[2] CC1を5.1kΩでプルダウンする
[3] D+、D-端子をジャンパする
これは簡易的な改造としてはUSB 3.0 19ピンコネクタのD-同士(8ピンと12ピン)、D+同士(9ピンと11ピン)を接続すればよいです。
ただし、480Mbpsの高速信号が通るので、D+とD-の配線の長さは最短かつそろえておいた方がよいです。

[1][2]の改造を施した写真は以下となります。

USB-019_Fix.jpg

[3]は写真を撮り忘れました。

一応これでSST-RL05のフロントUSB Type-Cコネクタが使えるようにはなったのですが、以下の制約があるため、使える機器はかなり制限されます。

・CC1、CC2が結線されていない
→ このため、DFP固定(ホスト側固定)となります

・SST-RL05のフロントUSB Type-C基板のなかでCC1、CC2がプルアップされていない
→ このため、UFP側でDFPがつながったことが判別できず、電源の供給能力も判別できません。

以上から、つないでも問題なさそうなデバイスはほとんどありません。

・Type-CをType-Aメスに変換するアダプタ、ケーブル (これはほぼ確実に動くと思います)
・セルフパワーのUSBハブ (こちらは動かないものもあるかもしれません)

電源が常時給電されるので、Power Delivery対応のUSBハブはつながない方がよいと思います。
スマホとかをType-C直結でつなぐのもやめておいた方がよいです。

以上のように改造してもやっぱりいまいちなので、USB 3.1 Gen2ヘッダ専用のケーブルを使った方がどう考えてもよいですね。
あまり製品が無いようですが、5インチベイが余っていれば、以下のものはマウンタを改造するなりして取り付けられそうです。

http://www.dirac.co.jp/pw-ic01nh45/

自作PCのフロント側USB Type-Cコネクタ

自作のメインPCを更新したのですが、USB Type-Cコネクタをケースのフロント側につけるのにはまってしまったので記事にします。

5インチベイとフロント側のType-Cポートが欲しかったので、条件を満たすケースを探したのですが、該当するのがSilverStone社のSST-RL05しか見つかりませんでした。
色違いのモデルがありますが、購入したのは「SST-RL05BR-W」です。

http://www.silverstonetek.com/product.php?pid=659&area=jp

Type-CポートのケーブルはUSB 3.1 gen2用の20ピンコネクタだと思っていたのですが、実際にはUSB 3.0用の19ピンコネクタでした。
購入したマザーボードは19ピンコネクタが1つしかないものだったため、Type-A×2ポートで使ってしまっており、させる端子がない状態となってしまいました。

また、たとえさせるポートがあったとしても、19ピンコネクタではType-Cコネクタに必要な信号が一部結線されないことになります。(結線されない信号はCC1、CC2、SBU1、SBU2)
電源供給のコントロールもできないことも合わせると、これは真のType-C接続とは言えず、Type-Aコネクタの代わりにType-Cコネクタがついている状態となります。
Type-CコネクタはDFPとUFPで同じなので、Type-Aコネクタに電源を供給するデバイスを接続できてしまうのと同じことになるため危険です。
(Type-Cの規格では、接続相手がUFPと確認してからVbusの電源を有効にするので問題ないのですが、Type-A向けのコネクタでは無条件に電源を供給してしまいます)

とはいえ、運用としてType-Cプラグ->Type-Aレセプタクルの変換コネクタか、Type-C接続のUSBハブをさしっぱなしにしておけば問題は回避できるので、USB 3.1 gen2の内部コネクタをUSB 3.0 19ピンコネクタに変換できるパーツがないものかと探したところ、Ainex社のUSB-019が見つかりました。

http://www.ainex.jp/products/usb-019/

USB 2.0ポートが1ポート足りないからという理由でUSB 2.0の接続端子がついているというキワモノ仕様ですが、接続先がType-Cコネクタであれば無接続でも行けるであろうと考えて購入してみました。
(USB 2.0用の接続ケーブルをマザーボードに接続した場合、Type-Aの片側のポートで、SuperSpeedの端子とHighSpeedの端子が違うコントローラに接続されることになるので、それでまともに動くのかという不安があります)

以下がUSB-019の写真となります。

・USB 2.0ケーブル付き
USB-019 USB2ケーブル付き

・表面
USB-019表面

・裏面
USB-019 裏面

購入してみて分かったのですが、購入前に想定していたよりもキワモノ度が高い製品であることがわかりました。
以下、問題点を列挙します。

[1] 20ピンVBUS端子、19ピンVBUS端子とUSB2.0接続ピンのVBUS端子が接続されてしまっている。
[2] CC1、CC2端子が10kΩでプルアップされているが、5.1kΩでプルダウンはされていない

[2]についてですが、この製品はUSB Type-CをType-Aレセプタクルに変換するアダプタと同等と考えられますので、
USB Type-Cの規格書、「USB Type-C Specification Release」の「Table 3-19 USB Type-C to USB 3.1 Standard-A Receptacle Adapter Assembly Wiring」に記載の通り、Rd=5.1kΩでGNDにプルダウンする必要があるものと考えられます。
そうしないとUFPが接続されていると認識されないため、マザーボード側がType-Cの規格通りに実装されているとVbus電源が供給されないのではないかと思われます。

※参考として規格書は長くて読むのがつらいので、簡単な説明であればmicrochip社のドキュメントがわかりやすいです。
http://ww1.microchip.com/downloads/jp/AppNotes/00001953A_JP.pdf

以下のように改造すればまともになるような気がしますが、そこまでする気力はありません。
(以下は動作確認ができていないのであくまで予想です。一切の責任は持てません)

・USB2.0コネクタは接続しない
・10kΩの抵抗2つは外す
・CC1ピンを5.1kΩでGNDにプルダウンする
・Type-A端子に接続する場合、USB 3.0 19ピン端子はUSB 2.0が接続されている側1ポート分しか使わない

かなりやる気がそがれていますが、モチベーションが続けば、もう少し調査を続けるかもしれません。

PC-9821As3のIDEで認識できるスリムドライブ

ファイルベイ仕様のPC-9821As3にHxC Floppy Emulatorを搭載するために5インチベイにスリムドライブと3.5インチドライブを搭載するマウンタを購入しましたが、PC-98のIDEではドライブによっては認識できなかったり起動中にハングアップしたりするので、いくつかドライブを購入して試してみました。

結果としては以下のドライブは認識して、ディスクの読み込みも可能でした。

・NEC ND-6500A
・Sony Optiarc AD-7590A


以下のドライブはNGでした。

・Panasonic UJ-850


試してみたドライブ以外の動作は不明ですが、結果から考えるとNEC、Sony NEC Optiarc、Sony OptiarcのNEC製チップセットを搭載したスリムドライブであれば使用可能と考えてよさそうです。
Optiarc製でもMediatek製チップセットのドライブがどうなるかはわかりません。

ファイルベイに搭載した画像は以下となります。

PC-98_SlimDrive_01.jpg

注意点として、IDEのコネクタ変換にAINEX社のWA-010MSを使用したのですが、ハーフハイトドライブとは40ピンコネクタの上下が逆となっているためにケーブルをひねって接続する必要があるのですが、元からついている短いケーブルでは長さがぎりぎりになります。
コネクタが逆なのはほかの変換基板でも同じようなものが多いようなので、IDEケーブルも別途用意したほうがよかったかもしれません。

EDWARD98.SYSとCD-SD StandardでMS-DOSに認識させた結果が以下の画像となります。

PC-98_SlimDrive_02.jpg

NECDCDC.SYS、NECCDM.SYSでも認識することを確認しているので問題なく使えそうです。

欠点としては、高速なドライブであるため回転音がかなりうるさいことがあります。
本体側にそこまで高速に読み込む能力がないので、回転速度を抑えられるとよさそうです。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。