98システム解析スレッド2023年10月 まりも 2023年10月1日(日) 0:00 |
月が変わってスレ立てします。 ttp://hp.vector.co.jp/authors/VA012947/iplware/osfdiplw.html OSFDIPLW は内蔵FDD 固定640KBモードでも機能するようにしました。しかし固定640KBモードなんていうものは、9801Vm以前からある2DDフロッピーメディア(古いゲーム)の起動ぐらいしか意味はないと思います。このモードでは外付けは認識しないし、1.44MBメディアは使えなくなるしで、デメリットの方が多いですから、あくまでも一時的に設定する物でしょう。
ところでDA/UAが70,71,90,91hとなるようなFDD4台の接続はどうすればいいのでしょう?そもそもあり得ないのでしょうか。先月スレ末のように、内蔵両用と外付けでは全部9xh台か7xh台のどちらかにしかならないようです。もしかして9801EにFDD I/Fの15ボードと09ボードを挿してそれぞれにドライブ接続ならあり得ますかね。(9801Fに15ボード、9801Mに09ボードでも同じ)
この時代の外付けドライブだとさらに増設もできるので、4台+4台まで(70,71,72,73,90,91,92,93h)もありうるとは思います。
|
無意味とは思いつつも リウ 2023年10月1日(日) 0:59 |
ttps://pbs.twimg.com/media/DmPiJVrUUAICnyI?format=png&name=small 8台はBIOSの設定するフラグから見ても可能なはずです。 内蔵2台の機種に2DDボードか1Mボードをつけて内蔵をその逆固定で設定すればそのようになるとは思うのですがIRQもDMAも2つ占有する上、使用者ですらドライブレターで混乱すると思います。(とはいえ当時のカタログにその接続種は載っていたような気がします)
DOS7.1が640kモードでは720kフォーマットが1台目からは起動できない、という問題を以前取り上げました。
|
レトロ98時代の外付けドライブをどうするか まりも 2023年10月1日(日) 8:51 |
>内蔵2台の機種に2DDボードか1Mボードをつけて内蔵をその逆固定で設定 やはり両用機能殺しのこれしかないでしょうが、640KB固定だと本体のFDD外付けFDDコネクタおよび87ボードコネクタ経由では外付けがどうにも認識されません。15ボードを入れれば認識されるのでしょうか。とりあえず内蔵1MB固定で外付け2DDの方法しか実験できそうにありません。
実機でテストとなると今から古い外付けドライブを蒐集しなきゃならんですね。2DDドライブ(コネクタがアンフェノール36pin)なんてもとから持っていなかったような。あるのは09ボードと、よくわからない36-50pin変換の両端アンフェノールコネクタのケーブルです。50pinのドライブにはこのケーブルを使えばよかったんでしたっけ? いろいろ忘れていますね。2DD外付けドライブは内部結線情報を集めて自作ですかねぇ。デバイス側34pinとコネクタ側36pinをどう合わせるんだったかというのと、モード設定DENの変更でいいんだっけかというのが忘れていますね。
<16時追記> 外付け2DDドライブ製品の中身、コネクタとFDデバイス接続について書かれた情報があまりないようなのですが、98RLのマニュアルから察すると画像のような接続でよさそうです。2DDなのでデバイス側2番のdensityはLowに固定でいいかと思います。READ DATAはVFOを通さないもので、PC-9801-09からの出力なら大丈夫でしょう。気になるのはRLのマニュアルに「-09ボードは80386モードでは動作保証しない」と書かれている点です・・・「動作しない」、ではないのです。ROM killだし16MHzならいいんじゃないの?
製作のほうですが、アンフェノール36ピンコネクタはEPSONスキャナ用パラレルI/FのCバスボードから引っこ抜きますかね。両コネクタのピン配置は画像の通り完璧にパラレルなので、ユニバーサル基板がそのまま使えそうです。つまり楽勝です。誰か先に製作と実験をしてくださるとありがたいです。
|
両用か否かはBIOSで判る かかっくん 2023年10月1日(日) 23:41 |
> <30日0時追記> Xnを使い、内蔵FDDを640KBモード自動で、87ボード経由の外付けFDD(50pinに特殊配線不要な2モード切り替え可能機)という構成で試してみました。実はこのような接続を試すのは初めてなような気がします。これで2DDのFDからDOSを起動するとFDDのDA/UAは70,71,72hとなります。70,71,90とか70,71,92にはならないのですね。またDIPスイッチ1-4で内蔵/外付けを入れ替えた場合でも、すべてのFDDにメディア突っ込んでおくと内蔵から起動しようとします。メモリスイッチの標準の優先順位は、1MB-->640KBのドライブという意味にはならず、単純に内蔵FDD-->外付けFDD-->固定ディスクのようです。そうだとは今のいままで知りませんでした。
んーXnだからのやうな気も...
> 構成同じで内蔵FDDを640KBモード固定にすると当然外付けは無視されます。640KB固定なのに内蔵のFDDからは2HDメディアのブートはできるようです。2HDでブート後のFDDのDA/UAは70,71hになり、F0,F1hとはならないようです。いずれにしてもOSFDIPLW 1.00では90hしか探さない仕様にしているのでこれではインストールできません。しかしブートできるくらいですから70hのDA/UAであってもor 90hつまりF0h指定で2HDのメディアにアクセスもフォーマットも可能です。これも実は初めて知りました。次のバージョンではDA/UAが7x hでもインストール可能にしておこうと思います。ただし本当の640KB IFしか持たない機種に外付け2DD専用FDDを繋いだ場合はそうは行かないでしょう。この「由緒正しい640KBモード」と内蔵の両用の固定640KBモードを区別する方法がよくわかりませんので、とりあえず突撃してエラーならおしまいという仕様にするしかないです。
Undoc2のio_fddに依ると、in al,0BEhでbit3-0にDIP SW3-2,1と現在のモードを得られ枡 他にBIOS(int 1Bh - 84h/C4h)から両用か否か判るそーデス
> 実機でテストとなると今から古い外付けドライブを蒐集しなきゃならんですね。2DDドライブ(コネクタがアンフェノール36pin)なんてもとから持っていなかったような。あるのは09ボードと、よくわからない36-50pin変換の両端アンフェノールコネクタのケーブルです。50pinのドライブにはこのケーブルを使えばよかったんでしたっけ? いろいろ忘れていますね。2DD外付けドライブは内部結線情報を集めて自作ですかねぇ。デバイス側34pinとコネクタ側36pinをどう合わせるんだったかというのと、モード設定DENの変更でいいんだっけかというのが忘れていますね。
09板・F/VF/Uの640K I/Fは300rpmでReadyを検知しませんから無怪造のPC用FDDの流用が可能デス 逆に外付け用の内、両用機の50pで2モードに成る機種は2DDも360rpmデスからHDEジャンパの変更が必要、 FD1137Dは(略)デスね DENジャンパを抜く事でDensityレベルと無関係に2DDモードに成増
|
またまた知らなかったことが まりも 2023年10月2日(月) 1:02 |
>09板・F/VF/Uの640K I/Fは300rpm えっ?そうだったのですか。これらで書いたメディアは両用の2DD 360rpmでちゃんと読めるのでしょうか?
ちなみにいま09ボードをRLに挿してますがなんだか認識できている気配がしません。
|
2DD 360rpmは くりすと 2023年10月2日(月) 3:39 |
FDCが300rpmで250kbpsなのを360rpmで300kbpsにして帳尻を合わせているので物理的には互換性があります。なので両用以降の98の2DDは転送速度が若干速かったりします。
|
古い外付けFDDの36ピンにもいろいろあるようで… KAZZEZ 2023年10月2日(月) 3:44 |
2DD専用の外付けドライブは持っていないのでよく分からないのですが、古めの2HD/2DD両用ドライブであればINとOUTのコネクタがあり3・4台目設定が可能なものもありますので、09ボードに4台という構成もできそうな気はするのですが、個人的にやったことはありません。INとOUTのコネクタがは基本的にアンフェノール50ピンで、36ピンはあっても1つしかないものしか見たことがありません。そうなると36-50ピン変換の仕組みが分からないと4台つなげそうにありません。NEC純正の36-50ピンケーブルは持っていますが、他社製の外付けドライブでは使えなかったりしましたので、外付けドライブによっても事情が違ってきそうです。 ttp://kazzez.html.xdomain.jp/junks/jisakufd.htm ↑当時のことはよく覚えていなかったり…。(汗
>認識できている気配がしません。 09ボードのBIOSを有効にしても同じでしょうか?
|
FDDユニット側でのレート変換 まりも 2023年10月2日(月) 8:43 |
すると36pinのコネクタが両方付いた2DDの外付けFDDユニット(まあ純正品など)は、250kbpsを前提にしているので、36-50pin変換で1MB インターフェイスに繋いじゃいかんということですよね(VFO有無もあるので当然ですが)。 逆の、PC-9801-09ボード(F,VF,U)に50pinの2HD/2DD切替スイッチ付きFDDユニットを接続する場合も然りです。NEC純正の36-50ピン変換ケーブルは、スイッチ切替と同時にレート変換回路を通す機構が備わるFDDユニットに使うものだったわけですか。ツクモの似たようなケーブルとは訳が違うのですね。<追記>FDDユニット側に変換回路などというものではなくて09ボードにそれ相当レートのVFOが載っているのですね、ご指摘ありがとうございます。確かに諏訪精工の9420が載ってます。
36pinと50pinのコネクタの両方を持つFDDユニットでは、内部のFDDデバイスがなんであれ片方にレート変換回路が入っているはずだということになりますね。<追記>ちゃいます
>09ボードのBIOSを有効にして それで見るとFD BIOSがD6000に現れたので、ボードの少なくとも本体側は生きているようです。
<22時30分追記>別保管所に、何用かも不明なアンフェノール36pin-34pinの変換ケーブル(画像1)があったので、ピン導通をチェックのうえ4本ほど配線を変え、PC-9801-09ボードとPC/AT用3.5"FDDを接続してみました。結果は画像2のとおりで、DA/UAに90h番台と70h番台が現れました。構成としては98RLの内蔵5"1台、1MB I/Fに3.5"1台、PC-9801-09に上記ケーブル接続のFDD1台です。なおやはりCバスclock 10MHzでは-09ボードは全く反応しません。
要点は次の通りです。 ・PC-98RLは 16MHzクロック(Cバス8MHz)にする(386でも動作) ・PC-9801-09のBIOS ROMは無効にする(ジャンパ、C-B側接続) ・本体内蔵FDDは1MB固定にする(DIPSW 3-1,3-2) ・(必須でないテスト)内蔵1台を外して1MB I/Fに2HDドライブを接続してみた ・PC/AT用FDDを昨日の書き込みの図(本日修正入ってます)のとおり接続 ・接続ケーブルでは FDDの3番,7番はGNDに落ちないようにする
ところが、、、メディアにはアクセス失敗します。回転数がおかしいのか、disk changeの問題なのか、2DD検出穴の問題なのか、よくわかりません。DISK CHANGEをREADYに変更できるドライブを使ってもダメでした。なお-09ボードはROM kill状態ですが、メディアを入れておくとブートは試みようという動作をしていますから、本体のFD BIOSが-09ボードを操っているのは確かです。
|
結線図見た感じ くりすと 2023年10月3日(火) 0:41 |
2DDドライブからはVFO経由で-09に接続してますが、信号線にWindow(34pinの3P)やMFM/FM(34pinの7P)は接続しなくても良いのでしょうか。(1PはGNDなので無くてもいい気もしますが)
※で注釈されているので単に省いているだけかもですが。
|
PC/AT用FDDで純粋2DDが動作(したかに見えた) まりも 2023年10月3日(火) 1:47 |
DS0設定可とかREADY/DC切り替えありだとか2番ピン割り当て変更可能とかいろいろ個性的なFDDを繋いでたのがよくなかったようです。TEAC FD235GF-156Uに至ってはどうみても360rpmで回っていました。最も普通のドライブYE-DATAの702D-6238Dであっさり動作しました。ただし無改造のためDS1固定です。このためDA/UAは70h不在で71hになります。
ところで純粋2DDドライブ装置はメディア排出がすぐに検知されないんですかね?エラーリトライ中にメディアを抜いてもかなり長い時間リトライしています。READYもDISK CHANGEも接続されない状態でいいのでしょうかね。なお2HDを2DDフォーマットしたメディアは誤魔化し効きませんでした。検出穴が活きているPC/AT用だから当然ですが。<10時追記>ですがメデイア読み込み中に頻繁にNot ready状態になるという問題があることがわかりました。まだ何かやるべきことがありそうです。本体CPUがV30モードでも発生しており、動作無保証の80386だからというわけではないようです。
>Window(34pinの3P)やMFM/FM 調べたところ9801-09には接続(定義)されておらず、VFO無しドライブを使う訳なので何もしなくてもよいと思います。
|
VFOなしなら くりすと 2023年10月3日(火) 6:53 |
不要で問題ないと思います。 ボードの画像を見たらSED9420C(VFO)が載っていました^^
記憶違いでなければですが、FDCが765系の場合はアイドリング中にポーリングでDS0〜3の存在チェックしていたかと。
|
2HD穴は塞がない方が かかっくん 2023年10月4日(水) 0:14 |
RLのFD1155Dで、RDを1でVFOを切りDENを3で2HDに...あ、5インチ2HDは360rpmの一択で09板では駄目デスね 逆にPC用2モード(1.44/720)を2HDモードで2HDのFDを入れれば磁気特性は2HDで、書き込む信号は2DDに成り そーデス 寧ろ2HD穴は塞がない方が好いの鴨
> 逆の、PC-9801-09ボード(F,VF,U)に50pinの2HD/2DD切替スイッチ付きFDDユニットを接続する場合も然りです。NEC純正の36-50ピン変換ケーブルは、スイッチ切替と同時にレート変換回路を通す機構が備わるFDDユニットに使うものだったわけですか。ツクモの似たようなケーブルとは訳が違うのですね。
レート変換なんて無かったやうな? だから2DD回転数の違いが断絶の壁だった気が?
純正のPC-9831何某で1Mと640KのSWが有る物が有馬すが、SWが後ろに有る通り普段変えるSWでわない事が 判り枡。 此のSWは接続先を15板か09板か撰ぶ物で、内部的にはRDとDENジャンパを切り換えて居た気がし枡 VW2のレイが過去ログに有ったやうな?
> ところで純粋2DDドライブ装置はメディア排出がすぐに検知されないんですかね?エラーリトライ中にメディアを抜いてもかなり長い時間リトライしています。READYもDISK CHANGEも接続されない状態でいいのでしょうかね。なお2HDを2DDフォーマットしたメディアは誤魔化し効きませんでした。検出穴が活きているPC/AT用だから当然ですが。<10時追記>ですがメデイア読み込み中に頻繁にNot ready状態になるという問題があることがわかりました。まだ何かやるべきことがありそうです。本体CPUがV30モードでも発生しており、動作無保証の80386だからというわけではないようです。
640K I/Fではアクセス後一定時間経つとNot readyに成増。詰まりアクセス中にNot readyに成る事は有馬せん。 34ピンのReadyを検知しないとわ云えヘンな信号が有ると誤動作するの鴨知れません。カットしても同様dsk?
|
本体が固定640Kで15板を差すのは面倒 かかっくん 2023年10月6日(金) 3:26 |
本体を固定640Kにして15板を差すのは15板のIRQ(INT)とDMAを変えねば成らず面倒そーデスね 殆どの機種のスロットには09板を後差し出来る信号は有っても15板用の信号は無いので。
ところでFreeDOS(98)のハイレゾ対応を徐々に進めて居枡(FDとHDDのIPLは済)が、BSDメニューはハイレゾ対応 でしたっけ? IPLとBSDメニューは表示だけの対応だけで凌げ枡がDOSカーネルはフル実装でないと不具合が出るでせう
みいそ・えぷDOS5/6はFreeDOS(98)のIPLコードのファイル名部を変えるだけで起動出来そーデスが、 みいそDOS5と6のIPLコードは5.0と6.2の他は一部のアドレスの違い位のやうデス。何の違いでせう? えぷDOSは此れから調べ枡。散財に成らぬやう芯から隅迄しゃぶり尽くさねば
|
ハイレゾ対応 リウ 2023年10月6日(金) 11:23 |
>>BSDメニューはハイレゾ対応 しております。XA,XLの結果をいただき、シャドーRAM設定値が08h,0ahになっていたのを 最新版では10h,12hに変更してあります。 公式最終版ではアトリビュートのジャンプ先も間違えていたので変更してあります。
ただしROM-BASICに抜けるコードはこれでは不可能(そもそもハイレゾ用ROM-BASICはない?)と判明しております。
|
隠すとか? かかっくん 2023年10月6日(金) 23:49 |
> ただしROM-BASICに抜けるコードはこれでは不可能(そもそもハイレゾ用ROM-BASICはない?)と判明しております。
ハイレゾ用のROM BASICは無い事に成って居枡から、ハイレゾで起動したら此の部分を隠すとか?
|
どのデバイスがA:になるか まりも 2023年10月12日(木) 16:21 |
PC-98のDOS系OSのドライブレター決定規則を一言あるいは1文でわかりやすく説明できる人はいますか? わたしはできそうな気がしません。DRVASN98のようなドライブレター変更ツールを作ったことがあるにもかかわらずです。これは規則に過ぎないので、法律の文が参考になるのだろうと思いますが、だいたい法律の文は悪文とされています。漏れはないのだろうけどわかりにくさは増えているかもしれません。結局下記説明文くらい長ったらしく注意書きの多い文章となっています。それでも説明し切れた気がせず、実例を示すことになってしまいました。 ttp://hp.vector.co.jp/authors/VA012947/w2kwxp/drvasn98_24a.html ttp://hp.vector.co.jp/authors/VA012947/w2kwxp/w2kdrvletter.html せめて3行でまとめられないかお知恵拝借。
PC/ATのDOSの場合も拡張区画を含めると結構ややこしいです。実例を出さないと回答しにくいですよね。
<21時追記> 98のブートとドライブレター関連の説明ってほんと大変だよなと、懐かし半分思い出したのがこれです。 ttps://weblabo.griffonworks.net/dorlog/2nddorcom/pc-98/3764.html
|
3行 かかっくん 2023年10月13日(金) 8:26 |
あれ?窓9xをSCSIから起動してもIDEが先でしたっけ?然うするとDOS6迄と違うやうな?
HDD内の領域の順番は変わりません(変えるにはパーティションマップの編集が必要)が、HDDの認識順は変えられる との事デスが、SCSIの順番は変わりませんか?DA/UAを変えれば... 此れ以上はIPLwareでないと対応が難しそーな?
〜DOS6での順番を箇条書きにすると ・起動装置の有るI/Fに接続された装置の若番から ・起動装置と同種の媒体(1M FDDと640K FDD、SASI/IDE HDDとSCSI HDD等)の装置の若番から ・起動装置と異なる媒体(FDDとHDD)の装置の若番から だった気が? # 漏れ有るものの、3行だ
因みにDISK BASICでは任意とは往かない迄も幾つかのパターンから撰べ枡。フォーマット処理の最後に決める アロケーションタイプの指定で決め枡。でも順番を暗記出来る人が何れだけ居るか?
|
もう無理 まりも 2023年10月13日(金) 10:07 |
>窓9xをSCSIから起動してもIDEが先 ですのでDOS 6 までと同じです。順番を決めているのはIO.SYS内部のルーチンで、メモリスイッチの状態や、それが標準のときの検索順序そのものではないのです。あぁもう1行では無理です。一応ブート検索順序はDOS内部の検索順序と似てますけどね。DA/UAの昇順でもありません。先日試したFDDの場合DAが90h台の方が70h台より前です。UAの昇順には従うようです。
実はMOが厄介なのです。MOから起動しなければ順位は最後方ですがMOから起動すると最前に来ます。このことで「起動したところがA:」の一行伝説が広まったのではないかと。MOに関しては5インチと3.5インチの前後関係などまだ不明な点があります。
|
勘違い リウ 2023年10月13日(金) 11:18 |
FREEBSD.MBRは公式最終版とは違って SCSIBIOSの存在を検知すると 上側にSCSIデバイスを7台、下側に内蔵デバイスを4台並べるように変更しています。 これはSCSIから起動したらSCSI側が先にドライブアサインされるだろう、という思いこみに依るものです。今DOS6.2で試したところ、内蔵側が常に(メモリスイッチのブート順に依らず)優先されてAから割り当てられました。 今更再変更もややこしいので放置します。
ところで1日のqemuでの画像では2DDドライブが両用ドライブに先行されている画像になっています。無茶苦茶ややこしいですね。
1302追記 現行のFreeDOS(98)はsys.comのオプションでアサイン順序を変更できると思います。 github.com/lpproj/fdkernel/blob/nec98test/docs/ja/sys_fd98.txt
1910画像追記 メモリ55Dhの上位bitを埋めた状態でDOS6を起動しただけです。 実際にはint1bの反応は40hで帰ってきます。 内蔵HDD側から起動しました。2DDが先に割り当てられ、両用ドライブは後ろに充てがわれました。 2枚目は両用ドライブからwin95を起動した場合です。
2200追記 D000にSCSIBIOSを設置しても結果はD8に存在するSASI/IDEが先取りになりました。
14日追記 5インチ2Dドライブもついでに調べましたが 2.11のバージョン違いはたくさんあるらしいのと手持ちのIO.SYSがHDD対応かつ2Dには非対応の気配でしたのでそこにはパッチを当てています。 2Dは後ろに配置されました。
|
|
順不同 まりも 2023年10月13日(金) 12:02 |
FreeBSD(98)のブートセレクタの表示は単なる表であって、DOSのドライブレター割り付けには無関係なので、順番はどうでもいいと思います。SCSIが先の方がわたし好みです(笑)。drvlst /d のデバイス順も適当で、自分好みでFDD がHDDより先にしています。
FreeDOS(98)のドライブレター割り付け規則がNECのDOSと完全に同じかの重箱の隅はつついたことがありません。ソースが公開されているのだから、カスタマイズすれば規則を自分好みにはできるはずです。FreeDOS対応版のDRVASN98を作れという声は今のところ出ていないので何もしていませんが、、、、
<15時追記>リウさんがQEMMで実現したときの画像だと、FDDの70h番台が90h番台より若いドライブ番号になっていますね。これは70hつまり2DDから起動した状態でしょうか?先日わたしが試したときは2HDから起動していました。そのため90h番台が先になったのかもしれません。ならば
>・起動装置と同種の媒体(1M FDDと640K FDD、SASI/IDE HDDとSCSI HDD等)の装置の若番から
この規則はFDDについては成立でしょうかね。もう一回確かめてみます。なおHDDのSASI/SCSIの順序については、どこから起動した場合でもSASIが前ですから、この文が成立していません。
|
SCSIがSASI/IDEより後なのは かかっくん 2023年10月13日(金) 21:21 |
SCSIがSASI/IDE(/ESDI)より後なのは、BIOSのセグメントがSCSIのが高位だからの気もし枡が如何でせう? SCSI BIOSをD0とかにするとド〜成るでせう?此れでもSASI/IDEが先に成るならSASI/IDE→SCSIで確定デスな
|
BIOSセグメントも関係ないです。SCSI BIOSをD000:0に置いてもSASI IDEからです。もっと低位のCC00:0にIPLwareで移動しておいても同じです。IO.SYSがドライブを割り振っているときのDA/UAで順序が決まります。DRVASN98はそこのところのパッチを行っています。
もしかするとIO.SYSへのパッチではなく、SYSTEM共通域にあるDA/UAリストを一時的に誤魔化すという方法でドライブレター順序を捻じ曲げるという手法も使えるかもしれませんね。パーティション間でのドライブ順序を捻じ曲げる方法は、パーティションテーブルの一時的な記述順序変更でできることは確認しています。いずれも極めてやばい方法ではあります。
ところでメモリスイッチには、ドライブ順序をFD優先にするかHD優先にするかを指定するビットがあり、BASICでは参照されることになっています。MS-DOSでは参照しないとなっていますが、ひょっとして初期のDOS、2.11あたりでは参照していたりしていないでしょうかね。せっかくある機能なので活かせるようにIO.SYSを改造したい気もします。静的なパッチで変更するより便利そうです。
ただしバックアップバッテリが干上がっていると、メモリスイッチは初期値のままどうにもならないという問題があるので、今どきの98に意味があるかは...
|
2.11にも幾つもバージョンが有り かかっくん 2023年10月14日(土) 2:27 |
みいそDOS2.11は幾つもバージョンが有り枡から、確か/人'A`;人\さんがお持ちの8インチFDに有るのが 初期のの希ガス 見極め方はKNJDIC.DRVの有無だとか?(無い方が2.11の初版PS98-121、有るのは122か123)
もっと前のDOS1.25(PS98-111)がレイのSWに対応していなくはない気もしなくはない肝?
修正版 FD起動の場合 ・起動FDDの有るI/Fに接続されたFDDの昇順 ・起動FDDと異なるI/Fに接続されたFDDの昇順 ・SASI/IDE HDDの昇順 ・SCSI HDDのID昇順 ・MO
HDD起動の場合 ・SASI/IDE HDDの昇順 ・SCSI HDDのID昇順 ・1M(640K?) FDD I/Fに接続されたFDDの昇順 ・640K(1M?) FDD I/Fに接続されたFDDの昇順 ・MO
MO起動の場合 ・MO ・SASI/IDE HDDの昇順 ・SCSI HDDのID昇順 ・1M(640K?) FDD I/Fに接続されたFDDの昇順 ・640K(1M?) FDD I/Fに接続されたFDDの昇順
此処迄ややこしいとMBRのが解り易い気がし枡。但しDOS3とDOS4以降で違い枡
|
【完全版】70h,90hのドライブレター順 まりも 2023年10月14日(土) 16:38 |
「真の2DDブート」がなかなか実現できないので、システム共通域0000:055D騙しで70h台のFDDデバイスを偽装してテストしてみます。FD-IPLwareでそのようにします。 その後内蔵の両用FDから2HDおよび2DDメディアでDOSを起動すると、ドライブレターは両用90h台のほうが2DD 70h台より前になります。いっぽうハードディスクから起動すると、70hのほうが前になります。
真の2DDからブートした場合もおそらく70hになるでしょうね。しかしこんなことが(自分だけかもですが)2023年になってやっと判ったとは、、、
かかっくんさんの修正版は、「FDD起動の場合」はそのままでOK、「HDD起動の場合」と「MO起動の場合」、640K FDDが先で1M FDDが後とすればこの結果をきちんと説明できます。3行は無理ですが、3カラム×5行の表で見やすくまとめられそうですね。
ちなみにFORMAT.EXE(オプションなし)でフロッピーをフォーマットするとき、「1. 640KB 2. 1MB」などという紛らわしい選択肢(#)が現れますから、やはりミイソの中の規則では640KBのほうが優先だということなのでしょう。FDD I/Fの型番でも2DDの9801-09は-15より前なわけです。 # 1MBだから条件反射的に[1]を押して涙目の人は多かったかと思います
|
どれがAになるかに付随して リウ 2023年10月15日(日) 18:59 |
忘れていましたがたったいま遭遇しましたので 固定ディスクは合計4台までしかMS-DOSは面倒を見ないようです。 SCSIディスクをたくさんつないでも無視されます。 内蔵1、SCSIID 0-5まで固定ディスク の環境で 内蔵とID0-2の合計4台の部分でだけドライブアサインされました。
2038修正 SASI/IDE/SATA?で4台、SCSIで4台だと思います。 この写真のID3にはFAT32しかありませんでした。
16日18:50反論追記 0460hからのパラメータは32byteで8台分確保されています。そのためID4以降の84hのsenseの返事がとれています。写真からもそれが見えます。DOS側でなぜか4台制限しているように思えます。
|
1Mがあとの理由 かかっくん 2023年10月16日(月) 13:03 |
> ちなみにFORMAT.EXE(オプションなし)でフロッピーをフォーマットするとき、「1. 640KB 2. 1MB」などという紛らわしい選択肢(#)が現れますから、やはりミイソの中の規則では640KBのほうが優先だということなのでしょう。FDD I/Fの型番でも2DDの9801-09は-15より前なわけです。 > # 1MBだから条件反射的に[1]を押して涙目の人は多かったかと思います
先ず09と15の関係デスが、元祖には1Mと320KのI/Fが有り640Kは有馬せんでしたから08板が製品化されますた。 次に08板は元祖専用(板の他に元祖のR板に差すROM憑き)の為R板のROMが無い09板も出ますた 一方15板の方はE/Fが出た時点で製品化されますた # SASI板の初出は05板デスから08よりも更に前
次にFORMATデスが、DOSのFORMAT.*は1.640KB 2.1MBデスが、BASICのformat.nipでは逆に 1.1MB 2.640KBに成って居ます。一貫性が有馬せん。
> 固定ディスクは合計4台までしかMS-DOSは面倒を見ないようです。
SCSI HDDは4台迄が98の仕様だった気がし枡 因みにみいそDOSではIDが不連続だと若番のしか認識しませんが、えぷDOSは不連続でも昇順で4台認識したやうな?
|
DOSで認識するSCSI HDDが4台に制限されるわけ まりも 2023年10月16日(月) 18:32 |
なんと、DOSより古くからあるBASICでは 1MBの方が先ですか。そもそもは2Dも対象としていたはずですが、format.n88 のことなんてすっかり忘れています。
>SCSI HDDは4台迄が98の仕様 だいぶ間違ったことを書いたので削除しました(20時)。システム共通域は関係ありません。0:0460hからのところには7台ぶんの諸元を格納できるので、98の仕様というよりはDOS内部の制約なんだろうと思います。いろいろなところに「4」の制約があるのですが、それと関係あるかどうか? DOSではパーティション認識が1台あたり4個まで、SASI/IDEが最大4台まで、などなど。
|
OSFD-IPLware 2.00 まりも 2023年10月18日(水) 0:00 |
OSFD-IPLwareがパワーアップしてバージョン2.00になりました。 (1)1.44MBメディアにも適用できるようになった (2)対象ドライブを選択できるようになった (3)1.25MBでのシリンダ77以降のフォーマット後のベリファイ というあたりです。1.44MBはシリンダ77、ヘッド1から最後までのトラック5個ぶんのところをskipセクタ扱いで確保し、そこにシステムとアプリを格納するようにしています。当該セクタにすでにファイルが存在する場合は適用を回避します。なお1.44MBの場合はIPLware格納域が46080byteで、1.25MBの49152byteより減少します。
バージョン2から1.44MBのFDに対応したことでWindows2000の起動FDの1枚目に直接組み込むことができますが、結構ファイルで一杯ですから、なにかのファイルを編集後などには空きが確保できなくなる可能性があります。オリジナル状態では大丈夫でした。
(3)のことがあるので、1.20かそれ以前をお持ちの場合はなるべくバージョンアップしてください(1.25は大丈夫)。シリンダ77以上に不良があった場合それが検出されず元に戻せなくなる可能性があるからです。 ttp://hp.vector.co.jp/authors/VA012947/iplware/osfdiplw.html
<12時追記> ちなみにOS起動用ではないH98の自動設定プログラム(ASP)のFDに適用してみたところ、FD-IPLwareの実行まではできましたが、本来の機能が実行されずにハングアップしました。どうもH98のASP FDの起動プロセスは通常の起動とは大きく異なるようです。例えばIPLがロードされるsegment位置が違うのかもしれません。まあASPのFDにIPLwareの必要性は全く無いので、対応を考える必要もないですが、ASPがどういう起動の仕方なのか解明はすべきかなと思っています。
そのほか9821Rv用(WindowsNTモデル用)のPCIsetupユーティリティのFD(DOSが入っていないやつ)なんてのも試してみる予定です。しかしIPLwareでPCIのリソースを整えてから実行する意味があるかどうかがよくわかりません。だいたい98本体のPCI BIOSは躾がなっていなくてPCIsetupユーティリティの言い付けをきちんと聞かないですからね。どっちにしてもOS起動用でないものに適用する意味がほぼないので、“OSFD-IPLware”というネーミングで適切だったと言えそうです。
FDLoader用FD(RvのマイクロコードアップデートFDを含む)に至っては、適用意味なしというか適用しても実行不可能ですから試さないでください。FDloaderの仕組みではIPLのセクタを全く読まないので、IPLwareアプリは実行されません。
|
逆汗してみるとか かかっくん 2023年10月18日(水) 13:13 |
ASP FDやPCIsetup FDのLBA 0を逆汗してみるとか?
追伸 普段8086命令しか遣わないので386命令について無知な事が露呈しますた <del>ポインタに32bitレジスタを遣うのはリアルモードでも良いんですね。仮想86でもおkdsk?</del> # <del>上位16bitでセグメント、</del>下位でオフセットを指定する
|
32bitのポインタは使えません。 まりも 2023年10月18日(水) 17:41 |
16bitコードで32bitのポインタが使えるかというと、使えないです。32bit値が代入できるだけです。例えば ESI =000A8000h として[ESI]でGVRAMを参照できるわけではありません。 ESI =A8000000hでもダメです。A800:0000hの代用にはならないのです。Intelにはせめてこれが通る仕様にして欲しかったところですけどね。
セグメントレジスタを使ってDS =A800h、SI =0000hとしてから DS:[SI] しか書けません。 ESI =000A8000hとした上で、DS:[ESI] というのは、use 16なアセンブラは通してくれないし、ほとんどのデバッガでも、こう書いてアセンブルをかけても違うでたらめな解釈のコードになると思います。 機械語レベルでプレフィクス66h,67hを無理やりつけた場合は? そう言えばどうなりますかね。たぶん上位が切られてDS:8000hと同じ扱いになるのでは。ここまで仮想86でも完全realモードでも同じです。
なおunrealモードにして例えば4GB空間全域を指し示すセグメントセレクタFSのキャッシュが生きている場合は、 ESI =000A8000hとしてからFS:[ESI]でGVRAM参照になります。これは1MB以上のメモリを扱わない場合でも、64KBのセグメント壁がなくなるため、めちゃ便利なのです。しかし仮想86では絶対許されません。AdaptecのSCSI BIOSの初期化ルーチンにはこのようなコードが見られますが、システム起動中に仮想86はあり得ないからいいのでしょう。IPLwareやFDloaderアプリなら積極的に使って大丈夫です。
|
FDとか KAZZEZ 2023年10月18日(水) 18:28 |
> 適用しても実行されない FDloaderの実行バイナリはデータ領域の先頭に置くだけで、IPLは使いませんから、IO.SYS/MSDOS.SYSの位置が固定されないWin9xの起動FDであれば併用できるんじゃないかと思います。拙作のCPU設定を行うFDloaderプログラムはFD版IPLwareのない時期のもので、強引にフォーマット直後のFDにコピーして使う形ですから、9xの起動システムと並存でき、そのまま9xのDOSを起動できるようにして使うと便利でした。この場合、9xの機能で旧DOSを起動できたかどうかは試していません。
>ASP 前にも書いたかもですが、ASPを求められた際に間違ってDOSの起動FDを入れたらそのままDOSが起動したことがありました。どの起動FDでもよいわけではなく、たまたまそのFDでチェックをすりぬけたのだと思われます。フォーマットしなおしたら再現できなくなりました。以前のIPLの一部の残骸とか、ボリュームシリアル番号などFD個体によって異なる部分がたまたまチェックサムを満たしたのでしょうかね??
|
三冠達成 まりも 2023年10月18日(水) 22:16 |
FDloader、DOS7起動(Win9x)、OSFD-IPLwareのトリプル併用はもちろん可能です。作成順では (1) FDLDMKFDでFDloaderのメディアを作る (2) DOS7のSYSTEMを転送する (3) OSFDIPLWを適用する になります。(2)の時点で「OS起動ディスク」になっているので、やっぱり名称的にはOSFD-IPLwareでいいということになりますよね。(1)からいきなり(3)の併用だと、通常起動時にIPLwareアプリが走るだけでその先がないという無価値な物でしかないので、総論として「FDloaderのディスクに適用しないでください」としておいていいと思います。
|
確かに指摘通りの動作 かかっくん 2023年10月19日(木) 2:10 |
> 16bitコードで32bitのポインタが使えるかというと、使えないです。32bit値が代入できるだけです。例えば > ESI =000A8000h として[ESI]でGVRAMを参照できるわけではありません。 > ESI =A8000000hでもダメです。A800:0000hの代用にはならないのです。Intelにはせめてこれが通る仕様にして欲しかったところですけどね。
あれ?と念ったら確かに指摘通りの動作デスね プレフィクスが有っても単純にポインタの下位16bitが遣われるだけのやうデス
|
DOS 7.xが気になって調べてみる まりも 2023年10月20日(金) 19:10 |
DOS 7.x(Win9x)が気になって、ドライブレター割り当て規則について改めて調べてみました。 ノーマル状態ではDOS6と同様です。FD起動すればFDドライブが前、HDから起動すればHDが前です(画像1上)。 いっぽうインストール時にsetup /ATにしてあるか、それと等価にする拙作「BOOTAT」を適用してあってHD起動した場合は、画像1下のように、A:B:だけFDDが割り当てられた次はHDなどが割り当てられ、さらに後に残りのFDDが割り当てられます。システム共通域を偽装して最大限接続したような状態でも同様でした(画像2)。DOS6とさらに違う点は、HD起動のときにドライブレター順序がFDDのDA/UA 70h台-->90h台ではなく90h台(の残り)が先となる点です。
このAT仕様が個人的には気に入っているわけですが、他のFDDが後というのもまんざらではありません。FDDを増減してもハードディスクのドライブC:からという規則が変わらないのは安心です。DOS 5,6もこういう仕様に改造したいところですが、、、ちなみにこのAT仕様というのはDOS 7のIO.SYSが変更されるのではなく、DOS7ブートセクタ中のなにかのフラグが変更されるだけで実現されています。DOS5,6をそこまで矯正するのは難しい気はしています・・・
|
> まりも 様 > だいたい法律の文は悪文とされています。
法律の条文なんて分かりにくい事この上ないのが多いので、参考にするのはやめた方が賢明かと思います。
> せめて3行でまとめられないかお知恵拝借。
私の場合、説明文が長くなりすぎたり条件分岐が多くて混乱しそうな時は、箇条書きか表にしています。
後は、注記についてはblogでありがちな米印にNo.を振る形にして、注記を後ろに追いやりつつ、都度、注記文へアクセスできる形にする事で本文を少しでも読みやすくする、ではないでしょうか。
|
Ap3もか まりも 2023年10月24日(火) 23:30 |
Anでは8000:0000hのメモリウィンドウのアドレス帯のメモリアクセスが非常に遅いというのは過去にもなんども問題にしましたが、Ap3でもそうだというのに気がつきました。CPUbenchをアドレス指定で実行するとかなりの違いです。さらに詳しく調べたらメモリのwriteが遅いようです。まず無条件にWrite Through動作のようですし、L2キャッシュも無効のような速度です。ベンチマーク値がその通りで、96前後は L2キャッシュなしのDX4(WT)そのものです。まあ遅いというよりは「速くならない」なので、L2キャッシュがなくWBでもない機種では全然問題にならなかったわけです。
>条件分岐が多くて混乱しそうな時は、箇条書きか表 その3カラムの表に箇条書きでなんとかなるかと思いきや、WindowsのDOS 7.xまで含めるとそれでも十分でなかったという・・・ドライブレター問題でした。
|
IOバンクメモリ考慮のため? おふがお 2023年10月25日(水) 13:20 |
80000h〜9FFFFhのキャッシュが効かないのは、ここがIOバンクメモリで切り替わる領域のため、なのでしょうかねぇ。 Ap3までが512-640KB領域を切り離せるギリギリの機種だった気もしますし、キャッシュの制御も大変そうです。
|
アイデアだけ(未実験) リウ 2023年10月25日(水) 13:35 |
VRAM裏のソフトウェアEMSのB000セグメントももしかしたら遅いかもしれませんね
19:35追記 つぶやきで詳細は書きました。XaとXfでは8000hセグメントは遅くはなりません。 メモリ窓機構は430NX、430LX機にはありません。裏EMSへの切り替えIOは機能しますが、切り替えると何も割り当てられずにFFが読み出せて書き込めません。 そのため430NX,430LX機ではバンクメモリはCバス経由で使うことは可能だとは思いますが、本当にそれだけのために残された機構のようです。(いやPCMCIAのメモリ窓などにも使えますがそれは16MBまでならどこでも可能ですから…)
そしてNS/Aはデスクトップ機と同じメモリ窓機構ですが8000hに8000hを割り当てているときだけは遅くなりません、それ以外を割り当てると相応に遅くなります。上の予想通りで裏EMS(この機種にはあります)も同様でした。
|
メモリウィンドウ まりも 2023年10月25日(水) 17:35 |
歴史的には、まずI/Oバンクメモリの機構として用意されたと思います(I-O DATA機器が目をつける以前)。9801初代はよくわかりませんが9801E/F/Mからはあります。それが初代の80286機98XAでは1MB以上のメモリのウィンドウになり、VXからは両方を兼ねるようになります。またRAからはSYSTEM BIOSを転送するシャドウRAMをマッピングする窓も兼ねるようになります。
しかし1MB以上の窓としては積極的に使っているシステムやアプリケーションはないのではないでしょうかね。EMM.SYSが可能性としてあるけど使ってなさそうということを以前書いた気がします。少なくとも80386以上ではそんなことをせずにプロテクトモードに行ってすぐ戻ればいいので、ますます使われていないでしょう。
基本的にPCI機ではチップセットがそんなガラパゴスな機構を許していないので廃止となっていますが、9821Xa初代の430NXにはどうもそれっぽい機構があり、システムセットアップメニューにも512KB以上の切り離しの項目が存在するということです。アーキテクチャ的には9821Xa初代が最後であろうと思います。 <追記読んで追記>切り離し可能というだけで、メモリウィンドウの機能は実装されなかったようです。IO 43f 80 82は効かないということならバンクメモリのI-O DATAのドライバも使用できません(補足:バンクメモリのハードウェアが全く使えないという意味ではない)。ということでAp3/As3,Cx/Cb,Xe/Xs/Xp,と来てXe10/BX4がメモリウィンドウの最後の機種です。
ということでこの機種のCPUbenchの8000:0hでの結果ってどうなります? >リウさん <追記読んで追記>遅くはならないという結果が出ました。Xa初代は過去の呪縛から解放された良い機種です。
いっぽうノート機ではメモリウィンドウの必要性は初めからないわけですが、デスクトップ機との共通設計のため存在する機種がある可能性があります。でもREDWOOD機以降は廃止されているのでは。9821Nfなんかはどうなのでしょうね。
|
8000hのメモリ窓 リウ 2023年10月25日(水) 19:48 |
メモリウィンドウを使わずとも286機以降ではInt1Fのメモリコピーでも100000h以上にはアクセス可能でもあるわけですから本当にどのプログラムも積極的にはその機構を使っていないと思います。
|
IOバンク対応機 KAZZEZ 2023年10月27日(金) 7:46 |
> RAからはSYSTEM BIOSを転送するシャドウRAMをマッピング たしかIOバンクについてもRX以降からはDIP-SWで切り放さなくてもメモリマネージャが対応していればソフトウェアでバンク切り替えができました。同じ286機でもVXでは不可でしたから、その機構を利用したものだったんでしょうかね。
> ノート機では 110/198ピンバス機にはCバスを繋げられますから、NS/AであればCバスメモリも使えなくはないような気がします。またNS/R以前のRAMカードでもサードパーティ製ではIOバンクに対応したものもありました(内部的な仕組みについては存じませんが)。
|
Xe10にはメモリの切り離し設定がなく全域WB まりも 2023年10月30日(月) 0:25 |
バンクメモリのエリアでベンチマーク取ってみるかと思ってXe10のシステムセットアップメニューをみたところ、メインメモリを512KBに抑える設定がありませんね。これは今になって気がつきました。BX4の場合でもそうでしょうか? まあ切り離しできなくても out 43Fh,82hが通ればいいのですが。
<6時追記> どうもうちのXe10はマザーボードがG8TZAリビジョンA10で、ジャンパピンを挿すとBX4に成るというもののようです。そこでシステムセットアップメニューを見ると、「2ndCCU」の使用可否の項目が消えました。確かにBX4に化けたようです。しかしメインメモリを512KBにできる項目は無いようです。 とここで気がついたのですが、AMD 5x86を載せてBX4モードにすると、拙作CPUL1WBがIPLwareでハングアップしますね(汗、、、ITFの仕事の何かが、Xe10とBX4とでは異なるようです。調べないとなりません。<12時追記>調べたところ、誤ってI/O 63Fhの bit4、「L2キャッシュ有効無効」のところを操作していたためとわかったので修正しました。しかしXe10ではそれで通ってしまっていたのは謎です。仕様上は「L2キャッシュがあってもよい」という作りになっていたのでしょうかね。Xe10とBX4差別化の一端が見えた感じです。
さらに気がついたのは、Xe10/BX4ではAp3と違って、5x86直載せでメモリウィンドウの8000:0でCPUbenchを実行した時に、速度低下がないことです。512KB切り離し機構が廃止されていることと関係しそうです。この点は486Hxと似ています。
<18時追記> これはもうライトバック可能全機種試すしかないということになってきました。結果はXe10/BX4だけがメモリウィンドウの8000:0で遅くならず、以下の機種は全て遅くなりました。遅くなり様はWT動作の時と同じであって、L2 readキャッシュやL1キャッシュまで無効にはなっていないです。 An,Ap3,BX3,Xn,Xp(XsにL2C)
|
Xe10のIO63F bit7 リウ 2023年10月31日(火) 11:26 |
話があちこちに飛んでいる気がしますがこちらで ITF内でIO63fのbit7を上げ下げする箇所は2ヶ所です。 リセット直後のDXレジスタ(の最下位4bitを無視して)チェックです。 048*なら(DX4のWT)下げる 043*でも(DX2のWT)下げる 148*でなければ(修正 DX4ODPのWT)上げる。 です。 しかしもう一度チェックが入り、外字メモリの0x5610 LINE 0xdの値(どこかで取得しているCPUIDでしょうか?)を見て(また下位4bitを無視して) 520(Pentium?),1550(不明)、1530(PODP)、470(iDX2WBE)の場合だけ上がり、それ以外では落ちます。 ですので490のDX4WBEや4F4のAm5x86では上がらないと読みました。 間違えて読んでいるかもしれませんがこんな気配です。
|
Xnにもある まりも 2023年10月31日(火) 17:53 |
実はそのようなCPUIDテーブルはXnにも存在しています。なんでMMX ODPは通るのに下駄付きMMX CPUではダメなのか調べていて見つけました。XnはPentium機なのに、テーブルには0420、0430hなどの486のデータが登録されているので、たぶん486機とITFコードは使い回しのところがあるのだろうと思います。RaII23-43にも、載るはずない(*)ソケット8のPentium ProのCPUIDがあるくらいですから、使い回しは普通のことです。 (*)しかし希少な「逆変換下駄」を使えばあり得なくはない
テーブルを書き換えてMMX ODPの飛び先と同じところにMMX P55CのID 540hを置いてみたのですが、結局Cache errorで止まりました。Xe10/BX4と同様にもう一箇所でCPUチェックをしているところがありそうです。しかしCPUID命令を実行している箇所はITFのどこにも無いのですよね。リセット時のDXレジスタをすぐにFSレジスタに退避したあと、そのデータを外字メモリにも保管し、また後で読み出して使っているようです。外字メモリへのアクセスは解読しにくいことこの上ありません。逆汗コードの「逆マクロ作成」までできるようなDISASSEMBLERが欲しくなります。
|
|
|