98システム解析スレッド2025年2月 /人'A`;人\ 2025年2月1日(土) 5:20 |
EPSON機のシャドーRAM リウ 2025年2月2日(日) 1:17 |
MCtekさんのご協力で理解が進みました。情報は公開しなければいけない、という気持ちで書きます。
PC-486MUではD8とD9が書き込み可能状態で見えています。(IDE未使用時は不明) またIO43dhの0x10と0x12の操作だけで(余計なことをしなければ)F8000hからの32kBの書き込みが可能になります。(この操作はPC-386Mでは無効です。) www7b.biglobe.ne.jp/~drachen6jp/geteprom.zip 実機の128kB(PC-486MUなど)機のROMの読み出し方と256kB機(PC-586MV)の読み出し方は上のファイルの通りのようでした。(どうやらSOUNDBIOSの16kBはCBUS相手の接続?) これらの操作でIDEBIOSへのパッチも実行できたとの報告をいただきました。 NEC互換のメモリ窓も存在するようですがIO53dの操作が完全互換かはわかりません。しかしシャドーRAMは384kBしっかり存在し、その操作方法はPC-386Mとほぼ同じでした。
|
ICCFIXに「98で使えるか」判定を組み込み まりも 2025年2月2日(日) 21:45 |
「98で使えるか」の判定プログラムは、新規に作るよりはICCFIXに組み込んだ方がよさそうです。基本FDLOADERアプリなので容量縮小する前でも実行できるためです。 いっぽうで容量はいろいろ変えることができてしまうわけなので、4351MBにできるか?の判定で済めばいいところが結構複雑になってしまいました。Identifyの結果のワード1,3,6のCHS項目は、容量変更後にはワード1のシリンダ数は変化しなければならない、とATA4仕様書には書いてあります。しかしそうならないSSDは多そうです。新ICCFIXではそこのところの値の変化も表示するようにしました。 ttps://www7b.biglobe.ne.jp/~marimo9821/fdldrapp/iccfix.html とにかくSSDにはいろいろあります。画像3のはかなり厄介です。これまでは使えるという判断になりがちだったはずです。
なおICCFIXでの判定は完璧かどうかわかりません。とくに、「4351MB壁なし機で使えるか」あるいは「DIV0ROMを通せば使えるか」の判定は難しいのです。画像4のように、容量縮小ができないタイプは、CHS変換機能のテストのときにシリンダ数が上限を超えてしまって正しい値を示さないため、H:Sを16:255などに変えたときにきちんと動作するかわかりません。32255MB以上にできるかどうか。完璧を期すにはやはり読み書きテストしかないと思います。
ところでSecurity Lockの話が出ていましたが、lockされているデバイスでは、容量変更ができないだけでなく、通常の読み書きができませんから、普通は使おうと思わないはずです。一応、新ICCFIXではATA4レベルで定義されているSecurity lockが有れば属性表示に [SECL]を表示するようにしました。壊れているかも?なノートPC内蔵SSDあたりで試してみるとどうなるでしょうね。
【2月3日追記】32255MB境界のところ、最大セクタ番号と最大に使えるセクタ数を混同していて(1ずれ)、ひとつ上の容量帯になってしまうバグがあったので、修正しました。少し余裕を持たせて、最大シリンダ数が65534となるように改めています。
|
    |
テストしないと見えないSSDの問題 まりも 2025年2月3日(月) 12:42 |
別スレッドでbest buyとして紹介したSSDですが、それはおとなしく4351MBか、せいぜいBIOSが認める8063MB以下で使う場合です。8GB対応機だとシリンダ数を騙すだけで本来の容量(32255MB以下)で使えるはずですが、最近のSSDではそうは問屋が卸しません。
直にI/OでLBAアクセスでディスクにセクタ固有のデータ(64bitのセクタ番地の繰り返し)を書き込み、BIOSで(ということはデバイスにCHSで)読み出すプログラムを走らせます。すると16382シリンダで壁に当たってしまうSSDがあります。ラップアラウンドして違うところを読んでデータ不一致というのではなく、デバイスのファームウェアが受け付けないエラー(No Data)です。なので検出はしやすいのが不幸中の幸いです。Transcend S370はそうであると以前にも報告しましたが、性能的にgoodなKIOXIA SSDよおまえもか、という感じです。この特性のSSDは案外多いかもしれません。
これらの特徴のSSDは新ICCFIXでは検出できません。8063MB以下では全く問題ないのですから。ある意味ATA-5くらいから以降の仕様通りだと言えます。仕様書には「CHSでは16514064セクタ=8063MBまで」と書かれていたと思います。
この特性のSSDを全容量使うためには、IDE BIOSの根本にメスを入れるリウさんのLBA_IDEの導入一択です(その前にDIV0ROMなどは必要)。拙作ROMアプリEXIDE**では解決できません。
|
LBAアクセス リウ 2025年2月3日(月) 13:42 |
導入一択と持ち上げていただきありがとうございます。 SSD(磁気ディスクではないものの意、ではなく真にSSD)を使うなら大熊猫BIOSを使うことに一票を投じておきます。
DOSでしか使わないなら内蔵IDEでのSD-IDEがもろもろを解決してくれているとも感じています。
ストレージの使い方もそのもろもろが判明してきたせいで宗教論争になってしまいそうです。
|
一周回って SSD < CF,SD-IDE まりも 2025年2月3日(月) 14:17 |
CHS 16383:16:63超えが、ラップアラウンドすることなくファームウェアによるアクセス上限になっているっぽいという結果です。H:S=16:255に変更しているとC=4047で打ち止めにされます。この境界アクセスチェックをICCFIXでの検出項目に今後追加しておこうと思います。書き込むテストは怖いのでやりたくありません。
EXIDEの今後についても、SSDを考慮すると8063MBまで拡張できれば十分な気がします。第4世代Rについては何もしなくていいわけです。CFでは大概32255MBまで行けるので悩ましいところではありますが、それ以上はもうはっきり言って不要でしょう。ただしSCSI互換の8:32や8:128では個人的に使いたいので、そこは残すつもりです。
「CFを漫然と使ってはいけない」に加えて(取り下げて?)、「SSDを漫然と使ってはいけない」を書かなきゃならない時代になりました。【16:15追記】というわけで書きました。わかりやすさと詳細さが両立しているかどうか・・・ SATA-IDE変換器でプライマリとセカンダリがごっちゃになるハードウェアの問題にもここぞと触れておきました。この掲示板以外では知られていない情報だと思います。 ttps://www7b.biglobe.ne.jp/~marimo9821/knowhow/ssdlimit.html
|
Security Lockの他に容量変更のロックが別に有る かかっくん 2025年2月3日(月) 21:46 |
> ところでSecurity Lockの話が出ていましたが、lockされているデバイスでは、容量変更ができないだけでなく、通常の読み書きができませんから、普通は使おうと思わないはずです。一応、新ICCFIXではATA4レベルで定義されているSecurity lockが有れば属性表示に [SECL]を表示するようにしました。壊れているかも?なノートPC内蔵SSDあたりで試してみるとどうなるでしょうね。
Security Lockの他に容量変更のロック(HPA Lock)が別に有馬す # 画像わACS-4のSecurity Lockの資料
|
    |
HPA Lock関連のコマンド かかっくん 2025年2月3日(月) 22:12 |
で、此方がSecurity LockでなくACS-2迄のHPA Lock関連コマンドと成増 ちゃんとPIO用のコマンドも有馬すから98デモ設定出来る筈デス
HDAT2だと処理を選ぶだけで粗自動でコマンドを送り枡からHPA Lockが掛かって居たり等アブノーマルな状態に 成って居るとヘンなタイミングでエラーが返って来たり逆に設定されずスルーしたりするので大変ですた
詳細わACS-2迄の仕様書を参照下さい
|
    |
続EPSON機のIDE容量壁 リウ 2025年2月15日(土) 21:20 |
PC-486SE,SRは2GB壁とはっきり判明しました。(CHS543MB壁内包の可能性は高い) BIOSの割り算ルーチンは見ていませんから起動時にフリーズするかはわかりませんが、CHSTransでH=4,S=17を渡すようです。しかしBIOSではH=8に合わせるのでBIOS上のCの最大値がEPSONDOSの符号付き16bitの最大値32767と合います。
つまり、CHSTransで選んだパラメータとBIOSパラメータが一致していません。そのためWin95のNEC製ドライバはエラーを吐き、EPSON製ドライバだけは素通しする、という今までの報告通りの結果になります。
486SE以外でも2GB壁とされる機種で、IDEINFなりIDEDEVでメディア側のパラメータを見てもらうとはっきりすると思いますが、現在も生きてる機種で報告してくれる人がどれだけ残っているか?ですね。
MCtekさんとやりとりしてくれた人と以前にCFリセット関連で486SE実機でのパラメータを写真に撮ってくれていた人がいましたので(二件とはいえ複数の結果)確定できました。感謝申し上げます。
もちろんBIOSの中身自体を直接読んだわけではありませんが、CFリセットに耐えた?という報告もあるので内部ではLBAアクセスしているのかもしれません。
17日20:43修正 586MVでHDB98でDMABOUNDARYエラー HDB98の1.54では発生しません。以下は無意味報告です。 EPSON機特有の事項ですのでバグ報告としては挙げていませんでした。 HDB98の1.50ではテスト前段階にBX=FFF0のサイズで転送をしているところが一カ所あるようです。この時IDEBIOS内でセクタサイズ200hで割り算してセクタカウント数に変換するときにあまりが出ます。NECのIDEBIOSはあまりは無視して続行しますが、EPSON機の一部(私の知ってるもののみ)では20hのエラーを出して動作停止をします。 ここであまりを無視するようにBIOSをパッチすると1.50も動きますが、そもそも1.54ではひっかからなくなっていましたので一応EPSONの意図を汲んでそのままにしておくことに決めました。
|
究極の選択 まりも 2025年2月16日(日) 8:18 |
 ミイソ製98の場合、CHSTransで選んだパラメータとBIOSパラメータ不一致で動かすと、CFリセットに対抗できたり、CHStrans機能が無い(または怪しい)SSDが使えるというメリットがある一方、Windows 9xのNEC版ドライバが動作しなくなるデメリットもあるので、FIXIDECFではどうするのが正解なのか悩みますね。一応選択できるようにはしていますが、ドライブ毎に異なる選択にはできないというか、どこに設定記憶するか模索しないとなりません。
EXIDEアプリを取り止めている理由もそこにあります。
それにしてもEPSON IDE BIOSが妙な仕様にしている理由は、EPSON版DOSが内部的に扱うシリンダ数が符号あり整数の最大値32767までだったから、というしょうもない理由でしたか。フォーマッタはprintf関数の書式を直すだけで符号なし整数仕様にできそうなのですが、CHSでの管理(シリンダ番号が使われる)が行われる起動メニューでは、大小比較命令を符号ありに直さないと多分ダメだろうと思っています。
EPSON版と同等の機能と画面を持ちIPLwareの仕様にも合致する起動メニューを1から作りたい、、、いや誰か作ってください。
【14時追記】HDB98がEPSON機でDMA境界エラーを起こすらしいということですが、64KB境界(セグメント X000h)にディスクバッファは置いているはずなので、原因はよくわかりません。とりあえず、使用ドライブレターの情報表示を追加して新バージョン1.54になりました(画像)。セクタ長256バイトのディスクドライブも計測するようにしましたが、正しい値なのかは怪しいです(BIOS経由だとR-M-Wのオーバーヘッドのためか遅い)。0除算エラーが起こった場合は無言ではなくそのことを表示するようにしました。異常に高速、極小容量の場合に現れる可能性があるほか、DISK BIOS(のパッチ)のバグでアクセス中にディスクアドレスの演算エラーが起こった場合も出ます。例えば543MB壁機種で何も処置せずに実行したときなど。 ttps://www7b.biglobe.ne.jp/~marimo9821/util/hdb98.html
|
しょうもない理由自体がしょうもない かかっくん 2025年2月17日(月) 1:27 |
符号有整数の件わ22年12月に検証して居枡が ematei.s602.xrea.com/cgi-bin/bbs39_ris3/bbs39.cgi?mode=past&year=2022&mon=12 メニューについてわ特にいじらなくても起動するやうデス
ところで、IPLwareの件と云えばリミットが1FFFFhとの事でしたが、此れわみいそメニューの場合で、 BSDメニューの場合わ基点が3000:0(リミットわ3FFFFh)に成って居枡。前提が変わって居る気が? えぷメニューの基点もリミットも違ィ枡し 尤もみいそメニューに合わせればBSDメニューデモ動くので無問題デスが
みいそメニューのリミットが1FFFFhナノわ98にRAM 128Kの機種が有ったからと云う、此れもしょうも ない理由デス えぷ機わ全機種が640K以上デスから1FFFFhリミットなんて無関係なワケなんデスな BSDもRAM 128Kでわ動作条件を満たしませんから3000:0にしたのわ妥当でせう
|
ICCFIXでの「98で使えない判定」が完璧ではない件 まりも 2025年2月20日(木) 18:44 |
これは動作報告と捉えておきますが、この状態では「98で使えない」という判定は正しくないかもしれません。 ttps://x.com/asmocoid_E5420/status/1892164801000038517 おそらく改変RaII23でのEXIDE使用状態で実行していると思います。EXIDEやLBA_IDE適用状態で実行するのは想定していませんでした。FDloaderでなくDOSプログラムで実行の場合は、DIV0ROMのみを想定しています。
元々の状態がいろいろありすぎて、ICCFIXで容量変更のついでに調べるというのは難しいです。正しくアクセスできるかどうかも含めて、専用のテストプログラム(終了時はリセットを要求するもの)がやっぱり必要だと思います。
>586MVでHDB98でDMABOUNDARYエラー Undoc1を読み直したところ、やはりセクタサイズ未満の長さは切り捨てられるようです。NEC 版BIOSではエラーとはしないがデータは捨てられてしまうので気をつけないといけないわけですね。実はHDB98では64KBの読み出し速度も測ろうとしていますが、BIOSには読み出し長BXに65536を指定することができません。Undoc1ではゼロを指定できるとなっているのですが、なんだかうまくゆかないので、65520を適当に与えていました。そこは今回修正して、65536-512バイト読むことにしています。EPSONのBIOSは長さのエラーの通知にDMA境界エラーを使うとは知りませんでした。
|
FDに容れるIPLとかSSD等の情報募集とか かかっくん 2025年2月21日(金) 2:17 |
此れこそFDLoaderが適して居そーデスが、色々と初期化されて居ない事を考えるとFDに容れるIPLとして 創るのが適して居そーな?或いわIPLをロードしたFDDの0:1:4(2HD/8のLBA 11、クラスタ2)を讀むだけの IPLを書いてLBA 11に本体をロードするプログラムを書くとか? # IPLに汎用性を持たせ本体をファイルとして置ける ・1FC0:0にロードするIPL (共通、0:0:1) DA/UAが9xh(1M自動/固定)かFxh(640K固定)か?違ったらリセット ;640K自動の場合1Mに切り替わるので9xh 同じFDDの0:1:4から1セクタ讀み60:0にロードする jmp 60:0 ;EA 0 0 60 0
・0:1:4に置き60:0にロードするBIN1 (個別) 1FC0:0に写す jmp 1FC0:0 ;EA 0 0 C0 1F 同じFDDの0:1:5からnセクタ讀み60:0にロードする。nが内容に因り変わる jmp 60:0 ;EA 0 0 60 0
・0:1:5に置き60:0にロードするBIN2 (個別) 個別の内容
HDDを讀む前デスからIPLwareがロードされませんし 文字表示が総てVRAM書きに成り漢字表示が面倒デスが、此れわFDLoaderデモ同じデスし
あとPC34ware(EMJ改ware?)とか? # D0に出す似非ROM
SSD/CFの情報もっと求む
|
|
|