戻る
<< BACK  2019年3月  NEXT >>
 強制リムーバブルのCFで2kを動かす。  KAZZEZ  2019年3月12日(火) 5:39
CFでWindows2000を動かす話は、話が逸れそうですので、スレを分けてみました。

強制リムーバブルになるタイプのCFは、
あらかじめPC-98のDOSでフォーマットしていても
2k上ではそのパーティションが見えません。
もしくは、空のドライブとして見えます。
…なので、2kをドライブごとコピーで移したつもりでも
処理が2kネイティブドライバに移った時点でINACCESSIBLE BOOT DEVICEとなります。

しかし、CONV98ATを適用してFDISKフォーマットの情報を追加してやれば、
リムーバブルディスクのままですが内容は見えるようになる様子でした。
ただし第1パーティションだけで、それ以降のパーティションは見えません。
# なので、第2パーティション以降にシステムを置けばやはりINACCESSIBLEです。
2kのディスク管理で領域を追加したりフォーマットしたりもできません。
つまり、2kで使用するためには全体を1パーティションで確保する必要があります。

しかしそれでも、2kインストール中にはディスクが見えなくなりますから、
普通に2kをインストールすることはできません。

つまり、あらかじめHDDもしくは
HDDとして見えるCFの第1パーティションに2kをインストールしておき、
DRVCPYもしくはWin98のXCOPY /R/I/S/K/Y/C/H/E/V あたりで
2kのドライブをまるごとリムーバブルCFに移す必要があるわけです。

後者の場合はブートセクタも工面する必要がありますが、
これはリムーバブルCFと同じ容量帯のHDDに2kをインストールすれば
DRVCPY /Bでブートセクタが移せますし、
あるいはあらかじめCFに2kインストールを途中まで行っておいて
ブートセクタを2k用にしておくという手もあります。

いずれにせよ、2k自体はリムーバブルディスク上でも動くようです。
(画像はMS Paintで減色したので変な色になっていますが、一応デフォルト配色です)

注意点として、移す2kのドライブ番号に気を付けてください。
私は最初、D:ドライブにインストールした2kをCFに移したので
恐らくCF上でC:ドライブとして認識されたようで、うまくいきませんでした。
前述の通り、リムーバブルCF上では第2パーティションは認識できないので
パーティションの数で調整することもできず、
結局C:ドライブとしてインストールしなおすはめになりました。
# なので、SP等はまだインストールしていません。

 リムーバブルでマスタースレーブは不可っぽい。orz  KAZZEZ  2019年3月14日(木) 1:58
あれからさらに試してみましたが、
どうもリムーバブル認識したCFに入れたWindows2000を起動する場合、
マスタースレーブでの2台接続を行っているとINACCESSIBLEになるようです。
マスター単独であれば起動できるのですが・・・意味ありませんでしたね。orz

結局のところマスタースレーブを2kで試す場合は
HDDとして認識するCFが必要になりそうです。
マスターの2k起動CFがHDD認識であればスレーブはリムーバブルでも良さそうですので、
そちらにDOSを入れておけば良さそうです(逆は試していません)。

(追記) ご紹介のサイトを参考に、レジストリのNonRemovableMedia値に起動CFの情報を追加してもみましたが、
再起動してもなぜかリムーバブルのままでした。当然、スレーブ接続したときは起動しません…。

 追試ありがとうございます  リウ  2019年3月15日(金) 11:54
twitterで一方通行につぶやいていまして申し訳ないです。
現状で私の方でも判明していることをまとめておきます。

PC-98版Windows2000では紹介サイトの話が半分ほど通用しません。
リムーバブルフラグがレジストリよりも優先されることがほぼ判明しています。レジストリに追加しても無意味でした。ですのでインストール時に細工してもごまかせませんでした。これはconv98atでFDISK型にみせかけたリムーバブルディスクに対しても同様のようでした。

conv98atを使う方法でリムーバブルディスクをブートデバイスにしてあげた後、filterドライバを入れてしまうと起動できなくなります。これで1台めのリムーバブルを固定ディスク扱いにして2台目も使ってやろうという思惑が外れてしまいました。
ちなみにブートデバイス以外ならこのfilterドライバで第2パーティション以降が見えるようにはなります。

インストール時の1度目の再起動までは当該機で、IDEドライバの選択(PNP関連?)までは固定ディスクでやる必要があるようです。その後からはリムーバブル状態でもFDISK型ならば続行できました。
ですので1度めの再起動までemulatorで済ませたものをそのままCFに書き込んで実機に持っていってもいつもどおり失敗しました。ここはWINNTディレクトリに何か足してやればいけるような気もしています。

追記
リムーバブルを起動デバイスにすると2台目をスレーブだけでなくセカンダリマスタにつないでもダメなことを確認しました。ですけどこの現象はなんでしょうね。ディスクの検索順序でしょうか?と思って2台目もリムーバブルにしてみたりconv98atを試したりもしましたがやはりダメなようです。リムーバブルブートデバイスを2台目にしてBOOT.INIを改変してもやはりダメでした。


 アクセス中にCHSパラメータが飛ぶCFがある!  まりも  2019年3月25日(月) 19:00
K.Takataさんのideinfとideflagsを合わせたような表示プログラムがあると便利だなと思ったので、作り始めました。identifyで得たデータのワード00のリムーバブル属性なども表示するとよいと思ったからです。その過程でいろいろなCFをテストしていておかしなCFがあることに気がつきました。

DOS起動時認識もできているCFで、きちんとCHSパラメータも8:17になっているのですが、連続読み出しを続けていると突然エラーが発生し、その後に確認してみると、なんとそれがデフォルト値に戻っていました。この事象は何度やっても再現し、たまたまというものではありませんでした。

PC-98でCFを使おうとして、コピーやフォーマット、OSインストールなどの大量アクセス中に認識しなくなるという話はよく見かけますが、どうも正体はこの事象じゃないでしょうか。

CHSパラメータを設定するinitialize device parametersコマンド(*)(91h)は いまでは「obsolete」となっているので、CFデバイスとしてはサポートしなくても構わないことにはなっています。現にそのようなCFもあって98では一切受け付けられないわけですが、このCFのように動作中に元に戻ってしまうという、中途半端なコマンド実装がされているCFも存在する可能性があるということになります。今まで見聞きしていた話が腑に落ちました。

なおこのCFはデジカメでは問題なく使えますから、不良というものでもないでしょう。

いずれにしてもPC-98で安易にCFを使わないよう警告したいと思います。動作不良をCF-IDEアダプタのせいにしたり(まあ本当に半田付けのひどい製品はありますが)、データが飛んだかに見えるのをコピーツールのせいにはしないようにしたいものです。

(*)ATAの仕様書を確認しましたが、"drive"ではなく"device"で正しいようです。

 デフォルトに変わるとは限らないのかも?  KAZZEZ  2019年3月30日(土) 1:46
> アクセス中にCHSパラメータが飛ぶ
なんとそのようなことがあったのですね。

確かに最近CFで試しているとフォーマット直後にパーティションテーブルが異常と出たり
2kのインストールをキャンセルして元に戻ったはずがデータが化け化けになっていたりと
何かの拍子にフォーマットを取り違えているような症状があるような感じでした。

ただ不可解なことに、非公式BIOSやEXIDEMGAで認識させた
4.3GB超えのCF(8GB)が16ヘッド63セクタなのでCFのデフォルトCHSに等しいはずなのに、
なぜかそうした症状が出ていました。

もしかしたら古い低容量CFと新しい大容量CFでも
何か挙動が違うのかもしれません。

> 動作不良をCF-IDEアダプタのせいにしたり(まあ本当に半田付けのひどい製品はありますが)
ずいぶん前に、差したCFを必ずぶっ壊す(挑戦者CF-USBの場合はUSBメモリ側が壊れる)症状に
遭遇したことがあり、それ以来そのCF-IDEアダプタは怖くて使っていません。
…なので本当の原因が何だったのかよく分かっていなかったりします。(汗

98(Bf)のIDEが微妙に仕様が違うのか、それとも電源の反転ケーブルの罠に嵌ったのか、
あるいは3.3Vと5Vがうまく切り替わっていなかったのか・・・。
とりあえず当時はアダプタを批判したものですが、(ぉ
http://weblabo.griffonworks.net/dorlog/2nddorcom/98maniacs/24495.html
今となってはそれでよかったのか気になるところです・・・。

 CFリセット【新語】  まりも  2019年3月30日(土) 13:05
>何かの拍子にフォーマットを取り違えているような症状
CHSが突然変動すると、パーティション先頭のセクタ位置がデタラメになるので、FDISK形式や98形式として認識できなくなることがあって当然でしょう。
スーパーフロッピー形式と誤認された可能性もありますよね。

>4.3GB超えのCF(8GB)が16ヘッド63セクタなのでCFのデフォルトCHSに等しいはずなのに、
CFのCHSがリセットされて16:63になることと、きちんとBIOSが設定して16:63になることとは、「デバイスの状態として別のもの」と思います。CFのCHSがリセットされているような状態は、電源が入れられたときと同じ状態でしょう。そこからIDE BIOSはHDDの初期設定として
set featuresコマンド(EFh)
initialize device parametersコマンド(91h)
を発行して行きますが、これらが行われないと、identifyで読んだデータの53ワード目のビットが立たず、currentヘッド数、セクタ数の値は保証外となったり、PIO転送モードが不定のままとなります。
画像はG8VER機のセカンダリスレーブでBIOSが無視したWD AC2540ディスクドライブの情報ですが、このHDDに至ってはcurrent head,sectorに0が入ったままです。多くの場合は一応の16:63の値が入っていますが、ATAの仕様書を読む限りでは "may be valid" となっていて、保証されるとは限りません。IDEデバイスの素性を知るにはあっちこっちのフラグで条件判断しないといけなくて、結構面倒です。
# ということで、set featuresも送出しないとスレーブ活性化しても使えない/遅いHDD,CFがあるのではと思っています。

で、なぜCFアクセス中にリセットがかかったかのようになるかが判らないんですよね。これはCF側のファームウェアの作りでそうなっているのか、CFアダプタの電気的特性によるのか。CFアダプタはアクティブ素子もファームウェアもない、単なるpinつなぎでしかない(から安価)ですから、電気的特性以外に相性問題はないでしょう。しかしこれはなかなか判断付きません。リセット現象が起こらなかったCFでも、CFアダプタに挿してアクセス中にグリグリといじったらリセットされたものがあるので、一概に「CFアダプタ無罪」とも言い切れないところです。
ハードディスクだと電源瞬断やスピンドル回転立ち上がり遅れによる初期化しそこないなどは明らかに音の異常で判りますが、CFは何が起こっているか見えない点が厄介です。

 PIO flow control 転送とは何?  まりも  2019年3月30日(土) 22:55
IDE BIOSの中でset featuresコマンドがどのように使われているのか調べてみました。サブコマンドは03hで、ATA仕様書によるとこれはPIO転送モードの指定だそうです。ではPIOモードいくつが指定されているのかですが、変数になっていてなかなか読みにくいです。たぶん諸元から引っ張ってきていると思いますが、基本的に08という値を拾っているようです。この値は、ATA仕様書によると、
"PIO flow control transfer mode"であり、さらに下ビット0,1,2はモード値ということです。

ところが"PIO flow control transfer mode"を使うには条件があり、ATA仕様書によると、それは「IORDY」をサポートしているデバイスでなければならない、と定められています。いろいろなATAデバイスを繋いで片っ端からidentify device情報(ワード49)を調べてみたところ、少なくとも私がもっているSanDiskのCFは、どれもIORDYをサポートすると断言できない“may be supported”(サポートしてるかも)と出ました。その値の反転は"be supported"です。裏返せばサポートしないとも言っているようなもので、甚だいい加減であきれる定義だったりしますが。
調べ方としてはK.Takataさんのideinf /v /d番号 で出力される情報があります。

どうやらPC-98では "PIO flow control transfer mode"のモード2か3で動作しているようだというのはわかりましたが、それをサポートしていないCFではどうなるかは、さらにBIOSを読み進めないとわかりません。しかしset featureを発行している箇所は1つだけ(デバイスの台数最大4まで繰り返し)で、"PIO flow control transfer mode"を決め打ちで設定しようとしているので、モード値はともかく、「本当にIORDYをサポートしないCFはそもそもPC-98のIDE BIOSの動作対象ですらない」のでは?という疑問が出てきました。IORDYに対応しない無茶な転送でたまに失敗し、リセット状態に遷移するのではないかと・・・

 SET FEATUREの設定値の可視化  まりも  2019年3月31日(日) 15:55
連投になりますが、Set Featuresでどんな値を出力しているかが気になりますので続けます。
前のコメントのアセンブルリストにある
D800:1962 out dx,al
で出力される値のことです。次の命令が
D800:1963 out 5F,al
というただの時間稼ぎ命令ですので、ここを
D800:1963 out 80,al
に変更してみることにしました。I/Oポート80hに出力することで、画像1のような「PCI POST CODE表示器」を使って値をモニタできるからです。なおPCI機種の場合待ち時間的には大差は無いです。結果はというと、とりあえず手近にある新旧のHDD全てで 0Bh が出力されました。これはビット列で 00001011 ということになり、ATAの仕様書から 「PIO flow control mode 3」の動作をさせるために行っているということになります。そもそも98のIDEはPIOモードいくつで動いているの?という問いはあったかと思います。モード3と言われていましたが、その根拠はここにあると言えます。

ではCFの場合はどうかというと、値が変化しませんでした。つまりここのset featureコマンドは実行されなかったということです。したがって動作モードはIORDYを使わないPIO1の動作であろうかと思います。一部の(ほとんどの?)CFの読み込み速度がHDDよりも大幅に遅いという理由はここに求められそうです。

うちにある最も古いHDDではどうなのかと思って Connerの340MBのをゴミ箱から出してきました。ideinf /v /d0 で読んだ情報のうちどうにもサポートしてなさそうな項目を抜いて表示してみると(画像2)、このHDDでもIORDYのサポートはどっちつかずですが、たぶんsupportedは may be disableに優先するでしょうから、IORDYは使えるとみられます。実際この古いHDDでもPOST CODE表示器では0Bhが表示されました。

気になる所としてはLBAに対応していないという点です(Quantum Fireball 540ATの逆)。IDE BIOSには古いHDDモデル名が入っていますが、それに該当する名前です。一部のモデルでIdentifyの諸元では判断できない特別な設定をするためのものであろうと思います。

 IORDYをサポートするCFよりも  かかっくん  2019年4月1日(月) 0:47
98のIDEの頃にATAの仕様上はIORDYが必須だったとすると、其の実装も納得です。
近年の高速CFではなく嘗ての256M〜512M位のの方が良いのかも知れません。DOS用途でないと
使い物にならんな

> IORDY may be disabled
> IORDY supported

此れは IORDYをsupportして居るが、現在のモードはdisabledらしい という意味では?
supported / not と disabled / enabled は別のフラグが有りそうな気がします。
ところで、転送モードの違うデバイスが混在する場合ってどうなるんでしょうね?遅い方に合わせる?

FixedでIORDYをサポートするCFを探すよりも、FixedでIORDYをサポートするIDE-SDのが良さそうな
気がしてきました。
CF-SDはCFのエミュレートであり其の保障は無いのでダメかもですよ
ただSDはフルサイズでもNANDが3チップ程度しか入らないので容量とSLCは望み薄ですが。

前提を引っ繰り返す様で恐縮ですが、非HDDストレージならMRAMのSSDは如何ですか?(爆
FixedはともかくIORDY対応は不明ですが(IDE-SATAの場合、IORDYに対応すべきなのはSATAデバイスか
IDE-SATAブリッジか何方でせう?両方ですか?)
デバイス側の動作としてはPIOの場合とDMAとでどう違うんでしょうね?UDMAはCRCが入ったりとか
違うらしいですが。
# A: やっぱりIDEではなく専用HDDポートなのか
# B: でもATAの仕様上はホストのDMA対応は必須ぢゃないでしょ?ホストの問題ぢゃないジャン
# B: ことデバイスはIORDY対応かUDMA対応かの少なくとも片方が必須で両方は必須ぢゃなさそうな希ガス
# A: で今時のは後者を実装して前者はおざなりと

PROMISEの増設IDEカード(ISA)が有るのでそのうちROMを解析してみます。多分MWDMA対応でせう
他にShiningの16bitPCMCIAカードも有ります。此れもMWDMA対応かな?
何方もCFでの動作実績が有りますから解析で何か解るかも?

2.5IDEの40Mとか80M(ともにT芝)は取っとくべきだった...ちなみに約960/5/17(プラッタ1枚)と約960(確か
同じ)/10/17(2枚)で、既にC/H/Sと実態の関係は崩れていますた

---
まぁ9821(およびFELLOW)はシリーズによって担当事業所(部隊)が違うのでUndocなワークエリアの
アドレスなど細かい部分が違いますからねぇ

 古いCD-ROMドライブも  まりも  2019年4月2日(火) 16:38
>嘗ての256M〜512M位のの方が良い
98の動作をいろいろ調べるならそのほうがいいでしょうね。Windows95登場以前のATAデバイスは何かとクセがありそうです。IDE BIOSも特定のIDEドライブかどうかを見ているようです。PCI機になっても、古いHDDのモデル名がBIOSに書かれていたり化石ルーチンがあったりするのは、古いHDDを繋いだ場合でも動作するようにということかもしれません。そのためXa/Cモデルの頃のIDE BIOSはコード量が多くて空きがまったくありません。しかし化石ルーチンらしいものはXa/Wモデル頃にばっさり削減されています。
ちなみに上のコメントにあるset featureのルーチンは、Xa/Wモデル以降の機種には存在しても実行されなくなっています(別の形でset featureを発行するルーチンはありますが)。ほとんどのHDDではここを使わないようです。

古いATAデバイスは何かと変、というと、CD-ROMドライブもそうです。Xsに付属の低速CD-ROMドライブですが、普通にidentify packetコマンドでモデル番号文字列を取得すると、ワードの上下が逆の形で入ってきます(画像1)。Little endian にするのが正しいとするとこのほうが正しいのかもしれませんが、これ以外のCD-ROMドライブではbig endianでメモリに格納されて順に読めば正しい文字列になっています。ミイソがこのCD-ROMドライブを設計した頃にはATAの規格というか一般的作法がまだ曖昧だったんでしょうか。
ところがWindows95のデバイスマネージャで見ると、このCD-ROMドライブのモデル名は正しく表示されます(画像2)。これはおかしいです。Windows95のドライバのほうで特定モデルのときにワード上下を入れ換える操作をしているとしか思えません。

 PC-CD60DRの別モード  かかっくん  2019年4月3日(水) 1:04
PC-CD60DRはCDR-260互換モードで使うのが普通ですが、ジャンパを差すか抜くかするとモードが
変わります。此の別モードではNECCDDは使えなくなりますが、どう出ますか?
窓ですが、98・えぷ版以外ではどう出ますか?他機種の円盤ドライバには此のスワップルーチンが
無さそうな気が?

化石HDDと云えば、Conner CFA340Aは98の他に不治痛がFMVに採用して居てジャンパが違っています。
FMVと同じジャンパにする(マスター設定でない方を抜く)とどうなるでしょうね?其れともFWも違う
(ラベルにNECと有る点が妖しい)とか?
あと妖しい物と云えばみいそD3766ですか。同じ型番で240Mと170Mに採用されていますし。
基板のSWが妖しげです。

 IORDY  リウ  2019年4月3日(水) 13:09
> IORDY may be disabled
> IORDY supported
ATAPIの仕様書を読んできました。
IDEINFのソースも確認しました。
上の行のものはword49bit10の確認
下の行のものはbit11の確認に使われていました。

word49のbit10がDisabledにできる機能の有無でこれを見るなら
IORDY disabled mode Supported のような書き方が正解の気がします。(もちろん表示されているものは仕様書どおりのものではあるのですが)
bit11がIORDYのサポートの有無でbitが立っていればサポートできbitが立っていなくてもサポートできるかもしれないとなっていました。
で、両方立っていたなら下の行のものはそもそも表示しない方がいいような…

うちで安定しているものは
bit11もbit10も両方が立たないものでした。(ここがまりもさんのものとは違います。)
とても遅いですがWindows95のインストールが成功します。

bit11が立っていてbit10も立っているものは
デバイス側がIORDY無効モードに移行してしまいここが何か原因で不安定になるのでは?とうちの環境では予想されるのですが
でもそれを2枚挿すとなぜか安定するんですよね…

Set transfer mode
PIO default mode 0_0000b 000b
PIO default mode, disable IORDY 0_0000b 001b
PIO flow control transfer mode 0_0001b Mode
これも参考にもうちょっと検証してみます。

 I/O 0432h bit1の機能は?  まりも  2019年4月14日(日) 16:21
PCI機種ではまあなんとか動くCFでもPC-9801BX3では全然動作しません。すぐに「CFリセット」になります。BX3のIDE BIOSを見ると、
WORD 49 bit 11、IORDYがきちんとサポート
WORD 53 bit 02(←誤 1が正)、WORD 64-70が保証される
WORD 64 bit 01(←誤 0が正)、Advanced PIOモード(3以上、IORDY必須)サポート
        <訂正追記↑>
のいずれかを満さない場合は早期終了し、全て満たしているデバイスではI/O 0432hのbit1に1 を書き込む設定をしてから終了するというルーチンがあります(画像)。I/O 0432hにx2を設定すると何が違うのかわかっていませんが、ここを通るほうが普通のHDDです。IORDYを使った転送モードにする機能ではないでしょうかね。Undocu2に詳しいことが書いてありません。
これら全部を満たしているわけでないCFは、HDDと異なる転送モードになると考えられます。しかしだからといって(その方がかえって?)まともに動作するようにはなっていないのがなんだかですが・・・
ちなみにWord49 bit10"IORDY can be disabled”のほうはチェックされていないようです。このルーチンの直後にConnerの特定のHDDのモデル名があるのも気になりますが、IORDYをサポートしないデバイスなんでしょうかね。
<21時追記>
この3個のjz命令を潰して、CFでも普通のHDDと同じルーチンに進むようにしてみました。CFが正常動作しやすくなることはありませんでしたが、うまく動いたときの転送速度は2割くらいアップ(それでもHDDの速度の4割くらい)しましたから、ホスト側が速い転送モードになっていることは間違いないようです。

そのほかDOS起動時にBIOSのax=0380,int 1Bを一度やっておくと、なぜかCFリセットを起こしにくくなるようです。一度CFリセットを起こした場合でも、これでリカバリします。しかしこれが完璧な方策となるかはわかりません。そもそもなぜそうなるか説明がつきませんし、IPLwareでやってもダメらしいのも謎です。

 どの段階で設定されるか  かかっくん  2019年4月20日(土) 0:39
IPLwareでダメだとすると、
・みいそ起動メニュー2.70
・各OSのIPL(PBR)
・IO.SYS/MSDOS.SYS(DOSの場合)・NTLDR/NTDETECT.COM(窓NT/2kの場合)
の何処かの段階で再設定(無効化)される気がします。OS自体だと厄介ですが、起動メニューならIPLware
ならぬPBRwareでどうにかなりそう(メニュー実行後に再設定)な気がします。PBRでの再設定なら
其のヶ処をつぶしませう
IO.SYS/MSDOS.SYSの場合は、とりあえずMSDOS.SYS迄ロードできるならCONFIG.SYSの先頭で再設定
する手があります。面倒なのはNTLDR以降の場合ですかねぇ?

 平成のうちに積み残しを  かかっくん  2019年4月30日(火) 6:26
ja.wikipedia.org/wiki/コンパクトフラッシュ#規格のあゆみ
en.wikipedia.org/wiki/CompactFlash#CF+_and_CompactFlash_specification_revisions

によると、

> 1.0(1994年): 初リリース。PIOモード0〜2(55倍速8.3MB/s)。
> 2.0(2003年5月): ATA-4に合わせた、PIOモード3と4(111倍速16.6MB/s)やコマンドの追加更新。CRC誤り検出再送。 (後略)
> 2.1(2004年5月): TrueIDEモードにMultiword DMA0〜2(111倍速16.6MB/s)を追加。
> 3.0(2004年12月): TrueIDEモードにUltra DMA0〜4(444倍速66.6MB/s)を追加。PCカードモードにPIO4〜6相当(166倍速25.0MB/s)とTrueIDEモードにPIO5と6(166倍速25.0MB/s)を追加。TrueIDEモードにMultiword DMA3と4(166倍速25.0MB/s)を追加。
> 4.0(2006年5月): PCカードUDMAモード0〜6(888倍速133MB/s)とTrueIDEモードにUDMA5と6(888倍速133MB/s)を追加。
> 5.0(2010年2月): 48bit LBA(BigDrive)(最大容量144PB)対応を追加。QoSを追加。Trim対応を追加。
> 6.0(2010年11月): UDMAモード7(1113倍速167MB/s)を追加。Sanitizeコマンドを追加。

と有ります(引用は日本語版のみ。英語版は各自参照下さい)。
CF2.0の『ATA-4に合わせた』点が引っかかる気がします。PIO3/4はATA-2で制定されていたので
PIOそのものの規格が違うのではないか?と。
で、元のATA/ATAPI-4を参照すると、

ja.wikipedia.org/wiki/Advanced_Technology_Attachment#規格のあゆみ
www.t13.org/Documents/UploadedDocuments/project/d1153r18-ATA-ATAPI-4.pdf

> ATA/ATAPI-4(1998年、ANSI INCITS 317-1998)
ATAPIの統合。スキャナ、プリンタ、メディアチェンジャー等SCSI準拠の多種デバイスのサポート。UltraDMA 0, 1, 2のサポート。コンパクトフラッシュ向けコマンドのサポート

ATAPI/UDMA/CF対応等かなりの変更が有ったという事が解ります。

で、IORDYですが、ATA-1
www.t13.org/Documents/UploadedDocuments/project/d0791r4c-ATA-1.pdf
によると6.3.12(PDFの25ページ、以下同様)に Optional と有ります。

> 6.3.12 IORDY (I/O channel ready) (Optional)
> This signal is negated to extend the host transfer cycle of any host register
> access (Read or Write) when the drive is not ready to respond to a data
> transfer request. When IORDY is not negated, IORDY shall be in a high
> impedance state.

ATA-2
www.t13.org/Documents/UploadedDocuments/project/d0948r4c-ATA-2.pdf
には29ページの5.2.12にやはり optional と有りますが、PIO3以上では必須とも有ります。

> 5.2.12 IORDY (I/O channel ready) (optional)
> This signal is negated to extend the host transfer cycle of any host register access (Read or Write) when the device is not ready to respond to a data transfer request.
> If actively asserted, this signal shall only be enabled during DIOR-/DIOW- cycles to the selected device. If open collector, when IORDY is not negated, it shall be in the high-impedance (undriven) state.
> The use of IORDY is required for PIO modes 3 and above.

56ページ
> 7.15.17.2 IORDY Support
> Bit 11 of word 49 is used to help determine whether a device supports IORDY. If this bit is set to one, then the device supports IORDY operation. If this bit is zero, the device may support IORDY. This insures backward compatibility. If a device supports PIO Mode 3, then this bit shall be set.
> 7.15.17.3 IORDY Can Be Disabled

58ページ
> 7.15.30 Word 64: Flow Control PIO Transfer Modes Supported

59ページ
> 7.15.33 Word 67: Minimum PIO Transfer Cycle Time Without Flow Control
> 7.15.34 Word 68: Minimum PIO Transfer Cycle Time With IORDY

ATA-3
www.t13.org/Documents/UploadedDocuments/project/d2008r7b-ATA-3.pdf

22ページ 3.3.1
> Signal IORDY
> Source Device
> Type Tri-state
> Host 1.0 k PU
> Note This signal should only be enabled during DIOR/DIOW cycles to the selected device.

25ページ
> 4.2.12 IORDY (I/O channel ready)
> This signal is negated to extend the host transfer cycle of any host register access (Read or Write) when the device is not ready to respond to a data transfer request.
> If actively asserted, this signal shall only be enabled during DIOR-/DIOW- cycles to the selected device. If open collector, when IORDY is not negated, it shall be in the high-impedance (undriven) state.
> The use of IORDY is required for PIO modes 3 and above and otherwise optional.

67ページ
> 7.7.17.2 IORDY support
> 7.7.17.3 IORDY can be disabled

69ページ
> 7.7.30 Word 64: Flow control PIO transfer modes supported
> 7.7.33 Word 67: Minimum PIO transfer cycle time without flow control

70ページ
> 7.7.34 Word 68: Minimum PIO transfer cycle time with IORDY

ATA/ATAPI-4
www.t13.org/Documents/UploadedDocuments/project/d1153r18-ATA-ATAPI-4.pdf

31ページ
> 5.2.10 IORDY:DDMARDY-:DSTROBE (I/O channel ready:Ultra DMA ready:Ultra DMA data strobe)

PIOでのIORDYに加えUDMAでの定義がされています。

100ページ
> Bit 11 of word 49 is used to determine whether a device supports IORDY. If this bit is set to one, then the device supports IORDY operation. If this bit is zero, the device may support IORDY. This ensures backward compatibility. If a device supports PIO mode 3 or higher, then this bit shall be set to one.
> Bit 10 of word 49 is used to indicate a device's ability to enable or disable the use of IORDY. If this bit is set to one, then the device supports the disabling of IORDY. Disabling and enabling of IORDY is accomplished using the SET FEATURES command.

103ページ
> 8.12.38 Word 67: Minimum PIO transfer cycle time without flow control
> 8.12.39 Word 68: Minimum PIO transfer cycle time with IORDY

Word 49のbit 11ですが、IORDY supported と IORDY may be supported しかなく明示的に
unsupported なフラグは無いやうです。其のため後者では使えないと見做すべきでせう

規格の違いは杞憂なやうですが、IORDYが不要になったという事実は無さそうです。ただし逆は有り
ました。初期の製品は対応していませんでした。

ATA/ATAPI-5以降も読んだところ、ATA/ATAPI-5以降に対応したデバイスではIORDYのプルアップが4.7kに変わっているそうで。
ATA/ATAPI-7(3分冊)
www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf
www.t13.org/Documents/UploadedDocuments/docs2007/D1532v2r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_2.pdf
www.t13.org/Documents/UploadedDocuments/docs2007/D1532v3r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_3.pdf
に気になる記述が。

1巻144ページ
> Bit 11 of word 49 indicates whether a device supports IORDY. If this bit is set to one, then the device supports IORDY operation. All devices except CFA and PCMCIA devices shall support PIO mode 3 or higher, shall support IORDY, and shall set this bit to one. If the serial interface is implemented, this bit shall be set to one.
> Bit 10 of word 49 is used to indicate a device's ability to enable or disable the use of IORDY. If this bit is set to one, then the device supports the disabling of IORDY. Disabling and enabling of IORDY is accomplished using the SET FEATURES command. If the serial interface is implemented, this bit shall be set to one.

All devices except CFA and PCMCIA devices shall support PIO mode 3 or higher, shall support IORDY,
and shall set this bit to one.
If the serial interface is implemented, this bit shall be set to one. と有ります。
CF/PCカードを除くデバイスはPIO3以上・IORDYをサポートしbit 11を1にせよ。SATAデバイスはbit 11を
1にせよと読めます。逆にCF/PCカードについてはPIO3やIORDYはサポートしなくても良いとも読めます。
シリアルI/Fの(此の時点でCF/PCカードではないですが)CFastは其の例外には当たらないと。

 CFの安定性と本体側仕様  まりも  2019年5月5日(日) 1:17
>うちで安定しているものはbit11もbit10も両方が立たないもの
BX3についていえばそのCFが全然安定動作しませんが、PCI機ではある程度動きます。Bit11が立つCFの方が安定動作しないとのことですが、BX3だとHDDと同じ扱いでIORDYありで動作すると見られるので、読み込み速度が速くなる可能性があるわけですね。入手して調べてみたいところです。CFリセットを起こさない「安定性」の方は正直言ってよくわかりません。
まずIOポート0430、0432の仕様が486機種で違いすぎるので、仕様を特定して行く作業が必要になりそうです。0432はセカンダリ搭載機からですがこれに2タイプはありそう。PCI機はまた別の仕様という感じがします。

 IDE-SD試してみた  かかっくん  2019年6月12日(水) 9:37
IDE-SDを平成のうちに試したかったのですが、令和になっても届かず、連休が過ぎてようやく届きました。
www.amazon.co.jp/dp/B07QYMHZ6P

V縦(山猫)でのノーカットのIDEINFの結果です。SDは4GのSDHCです。
S/Nだけ伏せています。21のあと英数字6字、スペース12字です
---
IDEinf Ver.0.07 Copyright (C) 2001-2004 K.Takata

Device: Secondary-Master

ModelNumber: "SINTECHI HighSpeed SD to CF Adapter V1.0"
FrimwareRevision: "Rev 1.2 "
SerialNumber: "21****** "
TotalSectors (28bit LBA): 7677952 (3749MB)
Default CHS: 56455/16/63 (Total: 56906640)
Current CHS: 56455/16/63 (Total: 7677952)

General configuration bit-significant information: 0x045a
not removable controller and/or device

Specific configuration: 0x0000

Maximum number of sectors that shall be transferred per interrupt on READ/WRITE
MULTIPLE commands: 1

Capabilities 1: 0x0f00
IORDY may be disabled
IORDY supported

Capabilities 2: 0x0000

Multiple sector setting: 0x0101
Multiple sector setting is vaild
Current setting for number of sectors that shall be transferred per interrupt on
R/W Multiple command: 1

Multiword DMA mode: 0x0107
Multiword DMA mode 0 is supported
Multiword DMA mode 1 and below are supported
Multiword DMA mode 2 and below are supported
Multiword DMA mode 0 is selected

Advanced PIO mode: 0x0003
PIO mode 3 is supported
PIO mode 4 is supported

Minimum Multiword DMA transfer cycle time per word: 120ns
Manufacturer's recommended Multiword DMA transfer cycle time: 120ns
Minimum PIO transfer cycle time without flow control: 240ns
Minimum PIO transfer cycle time with IORDY flow control: 120ns

Maximum queue depth: 1

ATA/ATAPI Version: 0x00fe.0x0600
supports ATA-2
supports ATA-3
supports ATA/ATAPI-4
supports ATA/ATAPI-5
supports ATA/ATAPI-6
supports ATA/ATAPI-7

Supported Commands: 0x8801, 0x5004, 0x4000
supports SMART feature set
CFA feature set supported
FLUSH CACHE command supported

Enabled Commands: 0x8800, 0x5004, 0x4000
CFA feature set enabled
FLUSH CACHE command supported

Ultra DMA mode: 0x003f
Ultra DMA mode 0 is supported
Ultra DMA mode 1 and below are supported
Ultra DMA mode 2 and below are supported
Ultra DMA mode 3 and below are supported
Ultra DMA mode 4 and below are supported
Ultra DMA mode 5 and below are supported

Current advanced power management value: 0x0000
Hardware reset result: 0x0000

Current automatic acoustic management value: 0x00
Vendor's recommended acoustic management value: 0x00

Security status: 0x0000

Integrity word: 0x0000
---

> TotalSectors (28bit LBA): 7677952 (3749MB)
> Default CHS: 56455/16/63 (Total: 56906640)
> Current CHS: 56455/16/63 (Total: 7677952)

CHSの値がおかしくなっています。56455/8/17なら其れっぽい値になります。
変更に対応していないかな?
窓950でFdiskフォーマット(FAT16の2パーティション)は後半も正常に読めましたが、
DOSだと変なCHSのまま読みそうです。窓用かデバドラ必須で起動には使えないかも?

> not removable controller and/or device

待望(?)のFixedキター

> Capabilities 1: 0x0f00
> IORDY may be disabled
> IORDY supported

> Advanced PIO mode: 0x0003
> PIO mode 3 is supported
> PIO mode 4 is supported

> Minimum Multiword DMA transfer cycle time per word: 120ns
> Manufacturer's recommended Multiword DMA transfer cycle time: 120ns
> Minimum PIO transfer cycle time without flow control: 240ns
> Minimum PIO transfer cycle time with IORDY flow control: 120ns

IORDY/PIO3はパス

> WORD 49 bit 11、IORDYがきちんとサポート
> WORD 53 bit 02、WORD 64-70が保証される
> WORD 64 bit 01、Advanced PIOモード(3以上、IORDY必須)サポート

Word53はbit1、Word64はbit0ですよね?
此の3条件は全て満たしていそうです。

使えるか?は△で、詳細に調べないと判らないやうです。次は98フォーマットして試してみます

 4.3GB以上ならオンボードIDEで使える?  まりも  2019年6月16日(日) 18:53
>変更に対応していないかな?
のようですので、98のオンボードIDEの4.3GB以下では、OSに依らず「98フォーマットで」使えないということになりますね。Windows2000 のブートもできないわけで、せっかくのFixed属性が活かされないのが残念というところです。

そのままPC/AT FDISK形式で使うぶんにはよいと思います。MS-DOSでも使えないことはないでしょう。ATAのASPI化ドライバを介すれば、アダプテックなどのFDISK形式FAT16のASPIディスクドライバは使えます。

BIOS認識しないスレーブ接続を逆手に取り、あえて16:63で叩き起こすスレーブ活性化IPLwareという手もあるかと思います。

オンボードIDE 4.3GB以上認識可の機種では、この容量以上<32255MBなら使えます。8GBくらいのSDで試してみてください。これに該当する機種でIORDYはどうなるのかは、IDE BIOSを詳しく調べてみていません。

>Word53はbit1、Word64はbit0ですよね?
そうです、今見返したらbit番号間違っていました。画像に記入したものからして間違っています。文章だけ追記修正で直しておきます。

 此のIDE-SDは改造でスレーブで使えるか疑問  かかっくん  2019年6月21日(金) 22:03
↑のSDは当時、Yマダの会員特典の割引クーポンを使うべくワゴンセールで見つけたのでスペックは吟味
していません。8.4G認識機は386GSと486HXと同じ倉庫に有るRa43しか無く、8GのSDHCはスマホに
入れたμSDしか無く、内容を他に移さないと検証に使えないのでしばしお待ちを。
# 486HXにもHDDパック用IDE互換ポートが有りましたね。528Mや544M迄ではなさそうですが何GB迄認識
# でしょうね?

その間に、CHSが変化しないのは基板によるものかSDによるのかを調べるべく、幾つかのSDで試してみます。
参考に、PCのIDEでの場合のCHSも調べてみます。先ずはCHS値が出るM/Bを探さねば(CHS値が意味を
成さなくなった為、近年のモノはサイズだけかLBA表示のが多い)

調べたところ、S/NはSDのもので、どのSDでもCHSは変化しないやうでした。IDEINFでのCHS値です

2G SD
TotalSectors (28bit LBA): 3970048 (1938MB)
Default CHS: 29191/16/63 (Total: 29424528)
Current CHS: 29191/16/63 (Total: 3970048)

4G SDHC (2)
TotalSectors (28bit LBA): 7995392 (3904MB)
Default CHS: 58789/16/63 (Total: 59259312)
Current CHS: 58789/16/63 (Total: 7995392)

4G SDHC (3)
TotalSectors (28bit LBA): 7861248 (3838MB)
Default CHS: 57803/16/63 (Total: 58265424)
Current CHS: 57803/16/63 (Total: 7861248)

ATA/ATAPIの仕様書を読むと、CHSを設定して変化した場合と変化しなかった場合について書かれていますが、
ITFではどのように処理していますか?(特に変化しなかった場合やコマンドが無視された場合)

> そのままPC/AT FDISK形式で使うぶんにはよいと思います。MS-DOSでも使えないことはないでしょう。ATAのASPI化ドライバを介すれば、アダプテックなどのFDISK形式FAT16のASPIディスクドライバは使えます。

今回の検証はPCではUSBのSDリーダーを使って、98では此れで読み出す事でFD容量を超えるデータの
やり取りをしてみたところですので、実際の用途とは別です。
本来の目的はズバリ2k(orNT4)のブートに使う点ですが、少なくとも此の基板とSDの組み合わせでは正攻法では
駄目そうですね。

> BIOS認識しないスレーブ接続を逆手に取り、あえて16:63で叩き起こすスレーブ活性化IPLwareという手もあるかと思います。

山猫ですからスレーブも認識するんですよねぇ...一旦認識したCHSをIPLwareで書き換えできましたっけ?
次善策として、一旦テキトーなCF(アクセスが続くとエラーになるものでも暫くは持ち堪えるでせう)を
プライマリマスターにしてIPLwareとNTLDRを起動して、BOOT.INIで別のデバイスから起動する方法を
とろうか?と考えています。
参考 hp.vector.co.jp/authors/VA012947/w2kwxp/w2kfdboot.html

あ、此の基板にはジャンパ類は全く無く、無改造ではCSELではなくマスターにしかなりませんので念のため。

 セカンダリスレーブの認識  KAZZEZ  2019年6月22日(土) 2:41
> 山猫ですからスレーブも認識するんですよねぇ...
山猫の頃はまだセカンダリ側のスレーブであれば認識しないという話だったような?

 山猫は最後迄セカンダリスレーブを認識しなかった?  かかっくん  2019年6月22日(土) 5:55
>> 山猫ですからスレーブも認識するんですよねぇ...
> 山猫の頃はまだセカンダリ側のスレーブであれば認識しないという話だったような?

其の通りでした。ROM BASIC有無の設定が無い末期山猫機で試すと認識しませんでした。
此れならスレーブにできれば上手くいくかも?
こうなるとセカンダリマスターには、BIOSで難無く認識できるデバイスを使う際は其れに、認識に難が
有る場合は円盤にすると良さそうですね。
MATE Rや海神(渡来豚)II系の場合は4台とも認識されるので此の仕分けは意味ないですが

Device: Primary-Master
ModelNumber: "IBM-DJAA-31700 "
TotalSectors (28bit LBA): 3334464 (1628MB)
Default CHS: 3308/16/63 (Total: 3334464)
Current CHS: 24518/8/17 (Total: 3334448)
# 差: 16=8KiB

Device: Primary-Slave
ModelNumber: "QUANTUM FIREBALL_TM2110A "
TotalSectors (28bit LBA): 4124736 (2014MB)
Default CHS: 4092/16/63 (Total: 4124736)
Current CHS: 30328/8/17 (Total: 4124608)
# 差: 128=64KiB

Device: Secondary-Master
ModelNumber: "NEC Corporation D3766 "
TotalSectors (28bit LBA): 0 (0MB)
Default CHS: 335/16/63 (Total: 337680)
Current CHS: 2482/8/17 (Total: 646971397)
# 正: 337552 差: 128=64KiB

Device: Secondary-Slave
ModelNumber: "QUANTUM FIREBALL540A "
TotalSectors (28bit LBA): 1064448 (519MB)
Default CHS: 1056/16/63 (Total: 1064448)
Current CHS: 1056/16/63 (Total: 1064448)

D3766は170M版で、LBAに対応しません。FB540ATは認識されないので、8:17にならず16:63のままです
# 8:17に設定するのはSASI(ST-506)との互換性のため?
# D3126 (20M) 615:4:17 (MFM)
# D3142 (40M) 642:8:17 (MFM)

   まりも  2019年6月22日(土) 10:21
>CHSが変化しないのは基板によるものかSDによるのかを調べる
全くATAとは関係ないSDにはCHSという概念がないので、SD-CF変換アダプタが固定値で作り出しているものでしょう。

>CHSを設定して変化した場合と変化しなかった場合について
initialize device parametersコマンドはエラーステータスが次のように規定されています。
Error register -
ABRT shall be set to one if the device does not support the requested CHS translation.
そのデバイスがCHS変換をサポートしない場合は1にセットされなければならない。
ABRT may be set to one if the device is not able to complete the action requested by the command.
コマンド要求動作を完了できない場合1にセットするかも(しないかも)。
ITFではいくつかのコマンドは汎用コマンド処理ルーチンを使っていてinitialize device parameters もその一つですが、error レジスタのABRTビットは共通ですからチェックされているはずです。しかしその割には素通り感があるのですよね。サポートが怪しいデバイスで1になってるかテストして見る必要もありそうです。

># 8:17に設定するのはSASI(ST-506)との互換性のため?
そうだと思います。

 CF-SD変換をかましてIDE-CFに使ってみました  リウ  2019年6月23日(日) 0:57
人様を動かして自分は報告しないのはフェアではないので後追いしました。
実験機はXb10/JのMMXアップデート版です。
プライマリマスタに起動用の通常のHDD2GB
セカンダリマスタにCFアダプタを介してさらにCF-SDもはさんでSDカードを

どこのメーカーのCF-SDアダプタなのか外観からはわかりません。まだ破壊したくないので分解してチップを見るのはご勘弁ください。
まず一番ダメそうなのがSDカードに依らず
supports SET FEATURES subcommand required to spin up after power-up
のbitが立ちませんでした。
何度かリセットすると起動画面へ進めるのですがまずメモリチェック後に固まることが多いです。1発で立ち上がりません。
これはBIOSで無視されているはずのセカンダリスレーブに挿しても同様でした、よくわかりません。

次にやはり91hのinitialize device parametersは通らないようです。
何度やっても16/63のまま進んでしまいました。セカンダリマスタにつないでいるため
F8E8:0010hには5が入っていましたが、0000:05BAhや0000:055DhのHDD接続台数フラグは立ちませんでした。固定ディスクではないと判断されているようです。
またスレーブ強制認識プログラムは容量で8,17か16,63かを判別するようにしているので手持ちでは4GB以下のものしか持っていないので失敗してD800:2140hに入れるシリンダの数値がずれてしまいます。
今晩は試せませんが16,63型強制認識にしてやればセカンダリマスタやプライマリスレーブで使えるような気はしています。

残念ながらうちのはリムーバブルフラグが立ってしまいました。CFリセットが起こるかどうかも含めて16,63強制にしてみてまた明日以降テストしてみます。

追記(23日21時)
テストしてみました。
プライマリスレーブにつなぐと起動阻害が起こります。プライマリのHDDにもアクセスできなくなりました。これはノートで実験したときにもそうなっていました。またプライマリマスタもメモリチェック後止まってダメでした
結局昨日試したセカンダリマスタがたまたま通っただけな気配を感じました。(CDドライブと思ってもらえてITFが素通りした?)
そして今度は16,63強制指定でアクセスしてみました。これもダメでした。
IPLwareで起こした後HDDにアクセスしにいくと失敗している気配です。
DOS起動後16.63を指定してもformat.exeやfdiskは失敗します。
フロッピーでブートしてもDOS起動画面直前で止まります。FreeDOSならもう少し進むはずですがもうこのアダプタでの実用は諦めました。

>CF-SDなのもある気がします。あくまでもCFの代用ですからCFとして扱うならリムバのが便利ですし
># リムバ認識で不便を感じるのはCFとしてではなくHDD/SSDの代用とするからですし
なるほど もともとの用途が違うからというのは合点がいきます。

>何処のか?はModelNumberに出ると思います
残念ながらCF to SD Adapterという文字列しか入っていませんでした。

写真だけとりました。98内蔵IDEではおそらく使えないハズレです。

さらに追記
True-IDEになれずにメモリーカードモードになってるのかもと想像しました(CFリセットのときもそうでは?)がチェック方法がわかりません。

 FC1307Aは設定値に関わらずH:Sに必ず16:63を返す?  かかっくん  2019年6月23日(日) 2:49
> 全くATAとは関係ないSDにはCHSという概念がないので、SD-CF変換アダプタが固定値で作り出しているものでしょう。

なるほど。確かに本来の組み込み用途ではATAとは無関係で、CHSも無くLBAでしか使えないでしょうから
CHSは間に合わせの実装なのかも知れませんねぇ
IDE/CF-SDチップFC1307Aは必ず16:63を返す仕組みなのかも知れません。
FWが外付けROMに有るらしいのでいじれるかも知れませんが。容量に応じて98に合わせたCHSにするとか?
データシートが入手難らしいのでプログラムをいじるのは難しそうですが。

気になるのは、(CurrentのH:Sがおかしいのは置いといて)Defaultのシリンダ値とTotal値がおかしい点です。
LBA値とCurrentのTotal値は一致しています。
# D3766のCurrent:Totalもおかしいですが

4G SDHC(1)
> TotalSectors (28bit LBA): 7677952 (3749MB)
> Default CHS: 56455/16/63 (Total: 56906640)
> Current CHS: 56455/16/63 (Total: 7677952)

他のSDでも同様です。実際にはH:Sの返値だけおかしいだけでシリンダ値の再設定はされているかも?
8:17決め打ちでアクセスすると通るかも知れません。
と云うワケで窓950/DOS6.2で試してみると通ってしまいました。どうやら表示だけの問題のやうです。
窓950のFDISKで2047Mの領域確保、FORMATでSYS転送、DOS6.2のFORMATで1701Mの領域確保・SYS転送
して、各領域から起動する事ができました。
逆にDOS6.2で初期化、窓950で2047Mの領域確保・SYS転送、DOS6.2で1701Mの領域確保・SYS転送しても
起動します。16:63の設定で8:17決め打ちでアクセスすると起動できないはずです。
此のIDE-SDに限ってはデバイスから得られたCHS値を使わずシリンダ値だけ使ってH:SはBIOSの設定値で
使うのが良さそうです。

で、リセットでは起動したので気を良くしていたら電源を入れ直すと『未フォーマット』表示でアクセス
できなくなりました。単体にすると『システムディスクをセットして下さい』やはり例の点で問題が
有りそうです。
FORMAT・起動確認直後と、電源を入れ直して『未フォーマット』になった物を比較してみると一致した
ので、SDの中身の問題ではない事が判りました。
で、更に調べるとなぜか255:63で読みにいったり、電源を入れ直すとLBA 0からゴミを読んだりする事が
判りました。電源を入れたままSDを差したり差し直してリセットすると正常になります。
スロットは空のまま電源を入れてからSDを差してリセットしないと駄目かも?こんなんで認識しますか
ねぇ?其れとも只の不良品?返品期限は過ぎているので続行するしかなさそうです。

更に調べると、パワーオンリセットに不具合(タイミングの問題?)が有り、RESET-をアサートすると
正常に動作するやうです。パワーオンリセット時にバスのRESET-を当てにしたデバイスと、デバイスが
自己リセットする事を当てにしたホスト(仕様からすると逸脱していますが)の組み合わせでは正常に
動作しないのは目に見えていますが。

> ITFではいくつかのコマンドは汎用コマンド処理ルーチンを使っていてinitialize device parameters もその一つですが、error レジスタのABRTビットは共通ですからチェックされているはずです。しかしその割には素通り感があるのですよね。サポートが怪しいデバイスで1になってるかテストして見る必要もありそうです。

CHS設定が通らない場合にちゃんとABRTフラグが立っているか?も怪しいですね
あと電源投入時だけ実行するルーチンとリセット時毎回実行するルーチンが有りますが、CHS設定は
何方ですか?

>># 8:17に設定するのはSASI(ST-506)との互換性のため?
> そうだと思います。

超大容量のSASI(ST-506)なんて無かったのですから、64M辺り(或いは8:17で○シリンダ超とか)を境に
決め打ちはやめてほしかったですかね
あるいは544Mを超えたら全てLBAでアクセスするとか?大熊猫Ap/Ap2 IDE改BIOSが此の仕様だったやうな?
# ありがたく使わせて戴いて居ります>大熊猫さん
528M(504MiB)を超えるHDDはLBA対応のはずですし。デバイス側に固定値を押し付ける方式より
仮想CHS(64K:256:255; 32bit近くなので2T近くまで使用可)はBIOSまでとしてHDDへはLBAに一本化する
のが...

> どこのメーカーのCF-SDアダプタなのか外観からはわかりません。まだ破壊したくないので分解してチップを見るのはご勘弁ください。

何処のか?はModelNumberに出ると思います。何かまでは現物を見ないと何とも。

> 残念ながらうちのはリムーバブルフラグが立ってしまいました。CFリセットが起こるかどうかも含めて16,63強制にしてみてまた明日以降テストしてみます。

CF-SDなのもある気がします。あくまでもCFの代用ですからCFとして扱うならリムバのが便利ですし
# リムバ認識で不便を感じるのはCFとしてではなくHDD/SSDの代用とするからですし
ウチのはFC1307Aからは'SD to CF'と返ってきますがIDE-SDですからFixedなのでせう
# ↑がROMのFWに入っている文字列なら'SD to IDE'とか'SD to PATA'に変えられるかも?

 BX4/Xe10の起動時の怪現象って  かかっくん  2019年6月24日(月) 20:18
スレチですがスレーブのスレはかなりsageたので。

↑には無かった気がしますが、BX4/Xe10の起動時の怪現象って解決したんでしたっけ?
web.archive.org/web/20180228011822/www8.atpages.jp/seedkun/nec/bx4/bx4.html

 BX4は素直なほう  まりも  2019年6月25日(火) 7:39
怪現象でもなんでもなく98およびWIN95のFDISKの仕様です。第2ドライブをFDSKしたときにマスタブートIPLが第2ドライブにはかかれません。だからもともとあった第1ドライブ(マスタに接続)を外すと起動できません。参考
http://hp.vector.co.jp/authors/VA012947/hduty/ipl_menu.html
この状態でなかったのに起動しない他の理由としては、メモリスイッチで固定ディスク#2が起動する状態にあったというのも考えられます。#2にあった起動可能なディスクを固定ディスク#1に持って行くと起動できません。

 An はIDE転送速度が上がる!  まりも  2019年7月27日(土) 1:29
上の「I/O 0432h bit1の機能は?」のコメントのように、PC-9801BX3ではI/O 0432hのbit1に1 を書き込むとCFが高速化されることが確認できたわけすが、PC-9821Anで適当なタイミングでそれをやってみると、なんとIDE 「HDD」の転送速度が5割も速くなりました。PC-9821Anではハードウェア的には高速IDEに対応しているのに、わざわざ低速にさせられていただけのようです。ミイソの出し惜しみがまたひとつ・・・
登場が近い時期のB-MATEなども高速化できる可能性はあるかも?
このへんの機種はIDEの32KB転送速度がせいぜい2000KB/sですよね?それが3000KB/sになるかもというわけです。

<7/28追記>HDB98の結果の画像を追加します。体感的にも速くなった感じはします。
B-mateの高速化の可能性については、その登場時期が1993年11月でAnは1994年5月と離れていることから、B-mateは古い設計での登場、つまり高速IDEに対応していないと考えた方がよさそうです。CanbeでAnと同時頃に出た機種Cxはどうでしょうね。

 Bfの場合…やっぱり無理そうでした  KAZZEZ  2019年8月6日(火) 1:58
とりあえずリアルモードDOSでI/O 0432h bit1 を2とORさせてみました限りですが、
Bf(1994年1月)では対応していないみたいですね。
Bfなら登場時期が少し違うしSV-98相当なので他のMATE Bとは違うかもと思ったのですが、
HDB98で1240くらいしか出ておらず、特に変化はありませんでした。

なお、そこそこ高速のCFでないと試す意味が無いので4GBのCFを使ったんですが
この機種では540MB超えに対応していないですので
あらかじめIDEPAT.COMを実行しておかないとHDB98が完走できないようでした。
やっぱり高速モードも540MB超え対応機のあたりに境界があるんでしょうかね?

 HDB98(汗  まりも  2019年8月27日(火) 19:06
>HDB98で1240くらいしか出ておらず
486時代のなんちゃってPemtium機はとにかくI/Oやメモリが遅いですね。Anも低速モードでも同時の機種より1割くらい遅いし、高速化してもやはり1割以上遅いです。

>HDB98が完走できないようでした
なにかエラーがあると正しいメッセージを出さず突然終了するバグがあるようです。R/Wのエラーもですが、演算でエラーの場合(速すぎ、遅すぎ)でもなるようです(汗
まあ544MB超え非対応機で何も対策せず超えようとするとseekのときにエラーになると思います。
<10/26追記>HDB98をバージョンアップしました。容量が小さいときに完走しない問題は少なくともあったようですのでそれを改善しました。

ところでCx、Cbは1994年10月で、これまた離れているんですね。どうもAp3/As3.BX3/BA3と全く同じで既に高速なIDEの機種のようです。ということでミイソ出し惜しみの封印解除ができるのはAnだけです。Anは544MB壁もない初めての機種だし、フラッシュROM搭載機としても初だし、いろいろ先取りしているんでしょうが、ちょっと変というところも多々あるという・・・
追記 9821Cs2は1994年2月らしいのでどうでしょうか。

 IDE-98とCF  まりも  2019年10月4日(金) 0:40
まずIDE-98が完璧に動く機種が限られますが、そのうえでCFを載せてみると、システム起動中にデバイス認識のモデル名は表示されますが、起動完了後にBIOSから認識されていない状態となります。Removable属性のCFは使えないようです。
<10/26追記>
Fixed(HDD)属性のCFは認識されました。ベンチマークも問題なく通ります(画像)。BIOSをPCI機でRAMにコピーした状態での計測値です。16GB弱の容量のCFですが、認識CHSの上限値とも違うおかしな値で切られます。なおこのCFはATAコマンドのInitialize device parametersが通らずH:Sの設定ができないデバイスです。それが正しく動作することから、IDE-98においてはBIOS対デバイスではLBAでアクセスしていると思われます。

 UIDE-66,133とCF  まりも  2019年10月15日(火) 21:03
UIDE-66をCFで使っているという情報が載っているサイトを見かけないですね。試してみると、転送モードがAUTOだとアクセス中にハングアップして使い物になりません。しかしMulti word DMA2の転送に設定するとハングアップしなくなりました。とりあえずDOSでは使えるレベルです。なお使用したCFは2008年頃に購入した台湾製のもので、fixed(HDD)属性ですが、98のオンボードにつなぐとCHSが設定出来ず全く使えないタイプのCFです。

 98で「使えるか」CF Transcend 133  まりも  2019年11月26日(火) 23:20
Transcendのx133のくらいしか現在CFは量販店では売られていませんので、仕方なく購入してみました。素性としては、Removable属性、Initialize Device Parameterコマンド可(Head,Sector数が8,17などに設定できる)、IOREADYサポート、というものでした。
RemovableなのでNT系 の起動はダメですがDOS起動では使えそうです。H,Sの値が飛ぶ「CFリセット」を起こさないかどうかが鍵ですが、IDEポートのハードウェアがかなり異なりそうなAe,Ap3,PCI機で試してとくに問題ありませんでした。<注意 追記参照>
またPCI機でも3000KB/s程度出ており、HDDよりちょっと遅い程度で済んでいます。IDE低速モードだと2000KB/s程度ですからIOREADY対応かつそれ(PIO mode3)で動作しているであろうと推測できます。ちなみにIDE-SCSI変換では、アイオーとバッファローのSCSI-HDD内部の変換器経由でとくに問題なく動作しましたが、IFC-USP-M2ではハングアップして使えませんでした。IDE-98との組み合わせもデータが壊れることが多く、使えません。

<追記> Xa13/Wでロングラン運用してみましたが、IDEデバイスを複数つないで読み出しを連続的に行うと、ごく希ですが「CFリセット」が発生しました。このCFは安価なので98で使っている例をよく見かけますが、ご注意ください。

 完璧なバッファローのCF  まりも  2019年12月19日(木) 22:39
産業用CFは猛烈に高価なので、量販店で売られているバッファローの4GBのCFを購入してみました(これも結構お高いです)。素性としては、Fixed属性、Initialize Device Parameterコマンド可(Head,Sector数が8,17などに設定できる)、IOREADYサポート、というものでした。NT系でも使えるということになります(おすすめはしませんが)。H,Sの値が飛ぶ「CFリセット」は起こしそうにありません。HDDとの互換性が高いCFだと思います。IDE-SCSI変換にも強そうです。アイオーとバッファローのSCSI-HDD内部の変換器経由でも、IFC-USP-M2でも、とくに問題なく動作しました。
<2020年10月5日 追記>別スレッドにある、SCSIインターフェイスとの謎の相性が発生するというCFはこれです。その他98上ではないですが、玄人志向製のSATAとCFの変換アダプタを介した動作で、なぜかこのCFはまともに動作しませんでした。一長一短ありますね。

 IORDY  set features  リウ  2020年3月12日(木) 12:30
時間があるのでBIOSコードを追いかけてみました。
D800:2?00から準備されている機種でのオフセット+11hにあった謎の03hがPIOモードの設定値であるとわかりました。
そこの値と8がorされて(デスクトップの場合)D800:2081に保存されてset featuresの時に使われます。
ただ手持ちのノートは全てオフセット+11hへの書き込みが行われないようになっていました。
またI/O432hはPCI機でもD800:2111の値-1で3のときだけbit1に書き込みがありました。プライマリだと12hでセカンダリだと22hが書かれるようです。

BX3で使われていた判定とほぼ同じものがXb10にも残っていました。
CFリセットと関係あるかを探るつもりでしたがそれはまだわかりません。
最後にノートでもI/O432hのbit1への書き込みを行うと速度が上がりました。
コントローラ側で何か切り替わるようです。CF側に何もしなくても速度があがるので

 CFリセット  リウ  2020年3月13日(金) 19:20
BIOS内に
MOV DX,074CH
MOV AL,06H
OUT DX,AL
という部分があります。
ここを通るとCFリセットがかかるCFがありました。
ここはInt1BのAH=03で必ず通ります。
ここはAL,02hにパッチすることにしてみます。

スパム対向上げ

 抗CFリセットワクチン  リウ  2020年3月14日(土) 11:08
多分行けるようになったと思います。
486機での裏RAMへの書き込みは機種毎の依存性が高くてまだ載せていません。
スレーブをBIOSで有効にする部分よりもCFリセットを防ぐ機構の方が現在だと有用な気がします。
https://drive.google.com/open?id=1FEjnLTE_YF76NFAzlL4D3QxlFPjB3M3K

追記
16日アップデートしました。
手持ちではうまく行くようになったようです。
ダメな状態をもっと色々準備したい所ですが。

 CFリセットが解決したらすばらしい  まりも  2020年3月15日(日) 18:09
上に少し書いたようにSet featuresなどを実行するのは、機種によって異なり、後期機種ではコマンドテーブル参照で実行しますが、PCI前期機種くらいではEFh即値のコードがあるんですよね。I/O 0432hの 12h,22h出力で高速化するのはAnとそれ以降の機種全てにある機能のようです。

int 1B,Ah=03の件ですが、IFC-NN 1.10のBIOSを見ていたら、 ALに何が入っているかわからない状態でAH=3のみ実行されているところがありました。もしかするとSCSIだけでなく IDE BIOSのinitializeも実行されてしまうのかも?ざっとしか見ていないのでわかりませんが、それをやられると道連れでCFがハングしてしまいそうですよね。

 此の対策で良いのかな?  かかっくん  2020年5月13日(水) 5:10
> MOV DX,074CH
> MOV AL,06H
> OUT DX,AL
> という部分があります。
> ここを通るとCFリセットがかかるCFがありました。
> ここはInt1BのAH=03で必ず通ります。

其のI/OはUndoc2のio_ide.txtによると(一部引用)
---
I/O 074Ch
[WRITE] Digital Output Register
bit 7〜4: 未使用(0000bにする)
bit 3: 未使用(1にする)
bit 2: Reset
 1= IDEドライブをリセットする
 0= 通常
bit 1: IRQ Enable
 1= IDEドライブからの割り込み禁止
 0= IDEドライブからの割り込み許可
bit 0: 未使用(0にする)
解説 o IDEドライブのリセット、割り込みの設定を行う。
---
と有ります。bit3の扱いが違うのは気になりますが。
そしてAH=3; INT 1BhはINITIALIZEコマンドですから、本来IDEデバイスにリセットを掛ける為のコマンドな
気もしますから、リセットを掛けなくても問題ないのか確認してからのが良さそうです。
仕様としては何方が正しいのか(CHSや転送モードが消えるのか消えないのか)も気になりますが。

> int 1B,Ah=03の件ですが、IFC-NN 1.10のBIOSを見ていたら、 ALに何が入っているかわからない状態でAH=3のみ実行されているところがありました。もしかするとSCSIだけでなく IDE BIOSのinitializeも実行されてしまうのかも?ざっとしか見ていないのでわかりませんが、それをやられると道連れでCFがハングしてしまいそうですよね。

装置(AL)を指定せずにINITIALIZEするとはいい加減過ぎますね(-_-)
其れより前にmov al,reg8とかmov ax,reg16とかpop axとかxchg ax,reg16とか有りませんか?

ドーにもならなかったら、CFを本体IDEに直結せずに一旦SATAに変換してIDEに戻すとか?
ロジックの問題ではなくコマンドの問題だから解決しないかも?
# 同様の事をSDで考えますた。SD-SATAならUHS-II/IIIのが欲しいですね

でもCFリセットを解決するのも大事ですが、NT/2kの実用面を考えたらSATA板からの起動のが遙かに実用的
ですから、SATA板にBIOS有りで98フォーマットして直接起動するか、SATA板にBIOS無しで98フォーマットして
本体IDEのNTLDR/NTBOOTDD.SYSから起動するか、SATA板にBIOS無しでFDISKフォーマットして本体IDEの
NTLDR/NTBOOTDD.SYSから起動するかが実用的な気もしますが、FDISKフォーマットから起動できるか?は
未知数ですね。抑々どぉやってSETUPしよう?f・6でSATA板のDRVを読ませて予めPCでFDISKフォーマットした
ストレージをSETUP先に指定かな?
SATA板のDRVを読ませて、SETUP先に其の板のストレージを選んだ場合はNTLDRは本体IDEのストレージに
入る筈ですし

 16日アップデート版のリンクがありませんでした  リウ  2020年5月13日(水) 18:11
https://drive.google.com/open?id=1O_TAsUuyfraTSeJzroZtG6tE3kZb0lEt
こちらがアップデート版になります。
機能をつめこみすぎて自分でも整理整頓しないといけないな…と感じています。

IO74CへのOUTは変更するのをやめました。やはり通るべき場合がありましたので
で、リセットは起こしても構わないとして
その後に保存していたパラメータ(D800:2X00を使わない場合はそれも確保して)のコマンド91hを送り直すことで
すぐにCFリセットを起こしていた環境でWindows95がインストールできたことを確認しています。

IFC-NNのBIOSは…… 確認するつもりで放置してます……。
思い出したので追記
AH=03でAL=C0の場合はSCSI共通 BIOS コマンドの終端になります。Initializeではないのかもしれない と予想だけはしていました。


SATA+ATフォーマット
データドライブでは必ず使えるはずですがブートは誰も試してないのでしょうか?
リムーバブルなCFでATフォーマットにすることでのブート成功はKAZZEZさんによる報告が上にあります。

 念のため…  KAZZEZ  2020年5月15日(金) 1:21
スレ頭の報告のCFはCONV98ATを適用したものだったと思いますので
もともとのPC-98パーティション情報(とPC-98用の2kのブートセクタ)は残っており、純粋なATフォーマットというわけではなかったと思います。
PC-98のパーティション情報を消した状態で2kをFDD起動できるかどうかは試していません。

 古いIDEドライブの仕様で  まりも  2020年9月27日(日) 23:41
NEC D3765という初代のIDEドライブ(120MB)がありますが、Initialize device parametersコマンドをサポートせず、普通でないnativeなCHSで動いているようです。アクセスの際にはCHSからCHSへの変換が発生しているはずですが、どこいらでしょうね。このドライブの名前はIDE BIOS中に書かれていますが、やはり特別な処理を必要とするドライブのブラックリストであることは間違いないようです。リストの文字列部分を潰してしまうEXIDE486を動かすと、このドライブでは起動時ハングアップします。

 そぉだCHS変換は  かかっくん  2020年10月4日(日) 3:10
98のオンボードIDEのCHS変換(8:17)ですが、結局意味が殆ど無い気がしますし、256B/s設定の時だけする仕様
だったら最初から8.4G迄使えた気もします。
NSとか『SASIとして載せていた』時期なら256設定固定だったでせうから8:17にも意義が有ったでせうけど
みいそのグループ内(傍からは同社内)にもD3765のやうなCHS変換できない機種も有ったワケですし
CHS変換についても8:17を押し付ける仕様よりBIOSで変換する仕様ならD3765を例外にする必要も無かった
でせう

ソフトDIP SWとかの余ったビットで8:17で遣うか(初期設定)、ネイティブCHSにするかの設定ができるやうに
できると便利かも。此の8:17についても現行でわなくBIOS内での変換にします。
# IDE板でも8:17とネイティブCHSの両方(更には8:32と8:128、255:255も?)が必要でせう
A-MATEとか01Bとか(MATE Bも?)なら256設定と512設定が有り初期設定は512ですから此のビットを
遣うのが良いかも?(モノホンの256設定も要るならROM替えでの対応と云う事で)

 CFの常用は難しい?  KAZZEZ  2020年10月26日(月) 1:31
スレの最初の話の、Nr15の4GBのリムーバブルCFですが、
やはり使っているうちにデータ化けでWindowsフォルダが壊れました。
以前Xc16で8GBのCFを試したときもそうだったかもしれませんが、
やはり例のCFリセットでパラメータが狂うせいでしょうかね。

古いHDDがどんどん劣化して使えなくなる今日このごろ、
どうにかして常用に耐える使い方が見付かると良いのですが…。

 SDがマトモかも?  かかっくん  2020年10月29日(木) 2:23
CF+CF-IDEよりSD+SD-IDEのがマトモな気がします。

ところで8:17式の数少ないメリットの一つは単純なクローンでも正常に動作する点ですね

 レイのSD-IDEやっと動いた  かかっくん  2020年11月18日(水) 1:40
レイのSD-IDEですが、どぉやらConv98AT/PC98CNVを遣って両用のパーティションマップ(NEC+)にしないと
ウマく動かないやうです。

チラシの裏の電子工作 SD-IDE変換をPC-98で使う
nax9800.blog.fc2.com/blog-entry-144.html
> このSD-IDE変換、いろいろ挙動をみてたら、SDにAT互換機のHDDと同じパーティションパラメータがないとまともに仕事しない気がしてきたので、以下解決手順。

追試したところ電源を入れ直しても動作しますた。ウマー
云われてみれば普通のSDならMBR式パーティションマップが有るワケですが、ヘンな仕様ですねぇ
まぁ98でしか遣わないなら此の部分にヘンテコなデータが有っても動きますから、SD-IDEに認識させる為だけに
全体を1領域にした情報でも入れておきますか
# 苹果機で遣えるのはいんてる機でMBR/GPT形式(内容はちゃんと領域を明示してもGPT領域の明示だけでも
# 良い)にする必要が有り苹果パーティションテーブルの68k/PPC機では使えないと云う事ですな
# 2T超のメモリーカードはGPTになるのだらうか?其のMBRモドキもGPT領域だけの明示になりそう

ちなみに4年前(当時から3年前)のBlogです。↑からも1年半経っています。当時気付けば良かった。
1年半を返せ>我

と云うワケで、NEC+形式にする必要が有る点だけは留意点ですが、動くCFを捜すより容易そうです。

あとはPCで98のストレージをフォーマットできれば完璧な気が。其れならFDDレスでも環境作りから運用迄
できますし。

※追試する方へ
↑の用語(特にパーティションマップとかMBRとかNEC+とか)の意味が分からない方はデータを失う危険性が
有りますので此のSD-IDEを98で遣わない方が賢明です

追試でなく追記
もしかすると1FEhのUェだけでもイケるかも?
# あ、Uェは入っているのか、とすると1BEh〜の情報が要るのか

愚痴
PCでもシリンダ0サイド0セクタ2(LBA 1)〜は空いているのでDOS3.2辺りでパーティションマップを此処に
移せば基本領域が32ヶ迄とれそうな気がしますが数十MのHDDで32もとれても意味があまり無いから
しなかったのかも?抑々M$はDOSとXENIXのデュアルブートは考えていなかったのだらうか?
# XENIXの方で考えた?あ、ATの頃M$はXENIXを手放した(→SCO)のか
# 其れでOS/2で改めてメニューを入れたのか

98は拡張フォーマットの初出がXA用OSだったのでE/F/Mとは別世界の体験(ハイレゾ専用機なので実際に
アプリの互換性に乏しかったので文字通り別世界)ができたのかも知れませんが。

標準フォーマットではいちいちフォーマッタで起動したいOSのIPLを書き込まなければならなかったのでBASICの
次にDOSで起動したくなったらリセットして別のストレージ(大抵はFD)でDOSを起動してFORMAT.COM(EXE)で
IPLを書き込む必要が有りますた。DOS→BASICの場合もリセット→FD等でBASIC起動→format.hdでIPL書き込みで
やっとBASICを起動できるやうに成増。其れがリセットするだけで起動するOSを選べるやうになったのですから
別次元ですよ
まぁBASICでDOSのIPLを書き込めたり(BIOSを遣えば他OS領域にも書き込める)DOSでBASICのIPLを書き
込めて序でにリセット迄かけられれば目的は果たせますが

 IPLもconv98at   まりも  2020年11月18日(水) 20:52
なるほどそうなりましたか。これってsd-ide 変換器ファームウェアがMBRの解析をしているということですよね。MBRの情報が有れば98の余計な情報はあっても困らないわけですね。
ふと思いついたのですがIPL1を含む98のIPL、これもPC/ATと両用にしてしまえばより便利ですよね。まあPC/ATでは起動させる必要はないですが、ハングアップせずにint19hに行くだけのコードを追加しておけばいいでしょう。98のIPLをわざわざ消すことなく、機種判別ルーチンの追加のパッチだけすればいいわけです。作ってからもう10年経ってますから、そろそろ大改築ですね。

 窓2kで不可なCFでもNT4なら  かかっくん  2020年11月24日(火) 13:25
CFあれこれforPC−98 - Wix.com
mcmxcad.wixsite.com/retropc/post/cfあれこれforpc−98

によると、窓2kで駄目なCFでもNT4ならおkな場合も有るやうです。ただしNT4を2kにうpgする際に不可らしいです

レイの件、DRVを遣う前に先ずは98フォーマットのSATAにチェインブートできるか試してみます。
NTLDR/NTDETECTの時点でCFリセットで青くなったら(98では青くなりませんが)論外なので
# 此の時点ではBIOSで認識しないSSにつないだストレージって認識しますかねぇ?