98システム解析スレッド2024年12月 /人'A`;人\ 2024年12月1日(日) 5:12 |
FIXIDE(仮称)の方向性 まりも 2024年12月1日(日) 7:12 |
非常に簡易なパッチで済むFIXIDE(仮称)はIDE BIOS 第1世代から第3世代まで問題なく動きます。第1と第2はそもそもパッチ対象コードのパターンが同じです(IDE BIOS自身のメモリ参照がCS:かES:かという違いはありますが)。第0世代機を全く所有していないので対応がわかりませんが、とりあえずCS:で第1世代と同じパターンを調べることでやってみようと思います。ノート機は、IDE BIOSの出現機構が違いすぎて無理かも。
問題は機種環境調査の部分がどうしても大きいことで、512バイトでは収まりそうにありません。そうなると、何があろうと正常にアクセスできるLBA16番地へIPLwareとして配置するということができません。機種環境固定型ならなんとかなりますが、当然、異なる98本体(特に内蔵SCSIの有無が変わるもの)に繋ぎかえたりサウンドBIOSの出現可否を変更すると、正常に動作しません。またエラーメッセージが一切出ない(その格納スペースがないため)ものとなります。でも大多数の人はそんなに繋ぎかえることはしないですよね。
それでも抗CFリセット効果と、第1-2世代は543MB-->2015MBへの拡張効果はあるので、普通にIPLwareとして公開はしておこうと思います。これで540MB近辺に容量制限したメディアの出品は殲滅できるでしょうw これからは2015MBですよ all the people.→【12月6日修正】4351MiBになりましたよ to people of the world.
【21時追記】結局CFリセットを最も手軽に回避(軽減)できるツールかもということで、名称はFIXIDECFとしました。IDE BIOS 第1世代から第4世代前期(4.3GB壁)まで通用します。第0世代はどうなんでしょうね?パッチ量は少ないので当たるかも。ソースプログラムは本文中にリンク。 ttps://www7b.biglobe.ne.jp/~marimo9821/exiderom/fixidecf.html あと過去に公開したEXIDE543はもう完全にゴミとなります。4351MBまで使えますけど、CFリセットに対抗できませんから、HDD以外には使うべきでありません。
|
S数17以上と考えて良さそー かかっくん 2024年12月1日(日) 22:23 |
ソースコード嫁と云う事でしたので、讀んでみますた 16:63の他にも幾つかの中から撰べるやうデスね 其れデモ総てのH:Sの網羅はフカ能デスから其れわ考えない方が良いでせう
まぁST-506時代からS17であった事からS数が16迄のわ無さそーデスが
|
別版専用IPLware まりも 2024年12月1日(日) 22:51 |
デバイスのnativeなH:Sを拾えば自動化はできますが、当然パッチの量が増えます。EXIDE2Gnに戻ってしまいます。当面の目標として1セクタ以内に収めないと、「98で使えないデバイス」を単独で(OSFDIPLwareをなしで)使えるようにできません。
3KBくらいあるFIXIDECFからガリガリ削って、一応500バイト程度にはできました。ただしガチガチに想定機種と環境を外部のプログラムで固定してから、既存IPLwareとは別にLBA16番地に書き込むものとなる上に、画面表示もエラー通知もできません(永久beepくらいは可能)。そんなのでいいのかという疑問はあります。ノート機用ならいいと思いますが、非PCIなやつは一台も持っていないのですよね。
ところでFIXIDECFは早くもバージョン1.01です。第1-2世代のルーチンに入るところが無効になっていましたので修正。
|
電源自動ON/OFF機にリセットライン まりも 2024年12月2日(月) 8:57 |
ttps://x.com/OffGao6502/status/1863249158532194376 情報源はXですがモロ98アーキテクチャなのでこっちに。 PC-9821Xa/W相当らしいFC-9821Kaですが、リセットボタン機能があるようです。システム全体のリセット線(CPUのresetピンでもないし電源のPowerGoodでもない)は、わたしがXv13/W購入当時からずっと基板上を探し求めていたやつです。あるんですね。各LSIのどこのピンに繋がっているのだろう?
これはもう家中のXa/WやRa を処分してFC-9821Kaを買うっきゃない!!
|
LBA 16から後續セクタを一気に讀むなら かかっくん 2024年12月2日(月) 20:33 |
IDEの仕様として、或るセクタからnセクタ纏めてR/Wする場合H:Sが幾つであってもLBAデモ、或るセクタの位置が 一致して居れば後續のセクタも一致する筈(分割すると再計算して合わなく成るのでフカ)なんデスよねぇ 詰まりLBA 16だけへの格納に固執する必要わ無くLBA 24をLBA 16の後續として讀み出せば良さそーな気が するんデスが如何でせう? 勿論IPLwareとわ別物にするなら位置も別にする必要が有馬すが
# 真坂Read/Write Multipleに対応しないと出来ないとか?真坂対応しないHDDにわ一々1セクタずつR/Wを # 出して居るとか?其の真坂ならフカと云う事に成増な、ぴえん
|
IPL-->MENUがCHS まりも 2024年12月2日(月) 23:22 |
その指摘は来るかなと思っていました。ミイソ純正IPLが起動メニューを読むところがそもそもBIOSレベルでCHS指定で、起動メニューのある0,0,2から14セクタ分読みに行っているのです。LBA17以降を読むには次のトラック、ヘッド1に変更したコードを追加してもう一度継ぎ足して読まないといけない(はず)です。 ここはあまり大きくはいじりたくないと思っています。せいぜい14セクタを15にするだけ。LBA指定にすればいいと思うかもしれませんが、DISKBIOSコールは他でもいろいろ呼び出しています。起動メニューを呼ぶところだけLBAに変更しようとすると結構大変なことになります。なぜかというと、ディスクドライブのDA/UAを格納しているのが変数ではなくてALレジスタで、非常に長い間キープしているのです。こりゃいっとき変更するのも大変です。AXレジスタってコロコロ変える(変わる)のが当たり前なのにそれが許されないのです。
さらにはセクタ数を増やして一回で読むのもまずいのですよね。なぜかというと読み込み先がメモリの絶対番地の2000:0のDMAバウンダリを跨いでしまうからです。すごいことに、きっちり2000:0から14セクタ分つまり7168バイト下げたところにロードしており、15セクタ分読むと跨いでしまいます。 DMA境界またぎはIDEでは問題ないことがわかっていますが、SCSIではダメです。
IPLから作り上げ直さないといけないとなるとため息が出ます。わずか256以内の短いプログラムなので逆アセしてソース化してそれを手直しすればいいかもしれませんが、ミイソの著作権的にどうなのってなります(まあこれが一番大きいかも)。
IPLも一種類ではないだろうし(バージョンなど不明)、いろいろ考えて、断念の方向に傾きつつあります。OSFDIPLwareじゃいけないのか、ROMアプリじゃいけないのか。
ところで第2世代機用のROMアプリのEXIDE2Gnは仕様をFIXIDECFに合わせて、YOSAKOI MB以下では論理8:17物理16:63(デバイスに依存)にしました。バージョンが2からなぜかバージョン5.00に飛んでいます。これは何かの伏線でしょうw
|
課題わ他にも有り解決策も有る かかっくん 2024年12月3日(火) 8:48 |
現時点で、みいそメニューを讀むとIPLwareローダも讀まれると憶い枡が、IPLwareローダで改めて 0:0:16(LBA 24-8)からnセクタ讀んで一旦バッファ(640K前提にして8000:0とか)に書き込んでから 改めて5F100hに写すなら問題無いかと。此の場合正確にLBA 24に置く必要が有馬すが 0:0:16から任意のLBA迄嫁なんてフカ能デスし
DMA境界わ286+機なら1Mや16M(XAわ8M?)にも出来る(DMACと聯動しバンクレジスタをINC io_dma.txtや青本参照)とか?他の条件で機種を絞れば遣える鴨 或いわDMAバッファ位置をEMS RAMかVRAMバンク1(裏)とか?両方無いU2(当時其れ也に賣れたらιぃ)わ 対象外としても問題無いでせう ところでDMA境界が問題に成るのわ本体DMAだけdsk?バスマスタとかPCIデモdsk? 8237A(9517A)とバンクレジスタの仕様の所為デスから他方式なら無関係な気が?
> DMA境界またぎはIDEでは問題ないことがわかっていますが、SCSIではダメです。
本体IDEわPIOデスからDMA境界が無関係ナノわ当然でせう SCSIわPIO(FIFO他)やSMIT等なら問題無さそーな? 其れとも33C93Aの設定だかにDMAを遣うから矢っ張り引っ掛かり枡か? あとSASIもDMAデスから問題に成りそーな? # IDEの対策だから共存出来ないSASIは考えなくても良い?
> IPLから作り上げ直さないといけないとなるとため息が出ます。まあ256以内の短いプログラムなので逆アセしてソース化してそれを手直しすればいいかもしれませんが、ミイソの著作権的にどうなのってなります。
BSDメニューならLBA 0のIPLもオリジナルでわ?○パクなら当時から問題の筈デスし
|
見通し立つほど面倒さが見えてくる まりも 2024年12月3日(火) 11:28 |
>IPLwareローダで改めて0:0:16(LBA 24-8)からnセクタ讀んで一旦バッファ 再三言っているように、それだけのコードスペースすらないので、IPLware本体やローダーは一切変更しない方針です。スペースの問題だけでなく、IPLwareの説明自体も長くなるので混乱を招きます。
IPLware外から、LBA16に書き込む別プログラムとし、IPLには大きくパッチを当てるか全面的に似て非なる別物を書き込むという方向です。そのときにIDEデバイスが正しく動いていないといけないため、ここはOSFDIPLwareを使うかSCSI起動して一旦はFIXIDECF動作下で実行してもらう必要があります。なおIPLwareのディレクトリには登録されるので、削除の時はIPLware.exe /Rを使います。
ということで、いくら技術的には解決しても、やっぱり導入の手数が増えて98勢には、、、 IDE-BIOS-LBA-patchすら面倒とか無理とかいう人がいるくらいなんですよ?FIXIDECFだってCFを使うならもはや絶対必要アプリとなっているわけですが、どれだけ入れる人がいるか?
1行で仕様をまとめておきますが、「FIXIDECFそのものに近いプログラムをLBA16-23に直に書き込み、IPLでは、IPL自身、パーティションテーブル、起動メニューの各々のロード位置を4096バイト繰り下げて22セクタ分読むようにしたものを書き込む」ものです(画像)。上で懸念していた、トラック境界をまたぐ1回のCHS読み出しはIDEでは大丈夫なようです。まあいったんCHS->LBAに変換されていますからね。
【追記】↓トピックのところのリンクが間違っていたようです。「最近のお勧め」と「ノウハウ読み物」のほうからは正しくリンクされていました。【21時】Xa初代機の対応漏れ、修正しました。PCIバス持ち=第4世代 という思い込みになっていました。
|
リンクが狂ってました リウ 2024年12月3日(火) 12:25 |
(対応ありがとうございました。1.10のダウンロードができました。)
LBA_IDEはソースの方から逆算してFIXIDECFが適用済みでも上からLBA化するように修正が終わり、これから実機テストです。
15:00頃追記 手元ではXa無印でFIXIDECFは動作不可能でした。ソースを拝見してPCI機では問答無用で第4世代パッチへ飛ぶようになっていましたのでそこだけバイナリパッチして第3世代の方へジャンプさせると無事動作しました。パッチがあてられすぐにCFリセットが起きるCompactFlashが物理16:63の状態でDOSが動作しました。 その他持っている機種すべてで試したわけではありませんがCr13,Asでも動作しました。
なおLBA_IDEはFIXIDECFが適用状態からもAs(第1世代)、Cr13(第4世代)では動作するように修正しましたが、Xa(第3世代)はまだです。アップロードもされていません。
23:06追記 LBA_IDEはバージョンアップしました。FIXIDECF1.03でパッチされたものは拒否しなくなりました。素晴らしいアイデアをありがとうございます。
改造中に気づいたのはREDWOOD機種にも第1世代BIOSはおそらく存在するであろうが、今はパッチできない作りになっていることです。手元にはNfとLtしかありませんからわからなくてもしょうがないと言い訳します。
EPSON機のIDEHDD認識手順をITFを読み出して確認もしました。IO74ehがミソでした。そのことも書き残しました。
|
ミイソの考えるセクタ長 まりも 2024年12月3日(火) 14:17 |
IPLを読んでいたところ、IPL自身、パーティションテーブル、起動メニューはそれぞれ800h(2048バイト) ずつ離してメモリにロードしているんですね。これはセクタ長が最大2048バイトまではあるものとして設計されていることを示す物です。1024B/sのハードディスクが存在していてどうやってブートするのかという疑問はあったわけですが、3つに分けてメモリ上ではセクタ長にかかわらず決まった位置に配置するのが正解のようです。2048B/sの640〜2.3ギガMOも、IPLさえなんとかすれば、「HDD互換モード」で何かしらのブートはできる気がします。MS-DOS起動までとは言わないですけども。
起動メニュー(+IPLwareのローダ)のおしまいが2000:0000hを超えてはいけないわけですが、FIXIDECFを書き入れるには余白がありません(by ピエール・ド・フェルマー)。ロード位置を全体に前に4096バイトずらすパッチをIPLに当てる必要があります。それにより最大8セクタの特別扱いアプリを配置することができます。IPLwareでは余裕をもって予約域を+8(合計24)セクタ取っておく仕様にしておいたのは正解でした。偶然ですがFIXIDECFの大きさは8セクタ、4096バイトに収まる程度です。
|
惡感の通り かかっくん 2024年12月4日(水) 1:30 |
> IPLも一種類ではないだろうし(バージョンなど不明)、いろいろ考えて、断念の方向に傾きつつあります。OSFDIPLwareじゃいけないのか、ROMアプリじゃいけないのか。
其の通りのやうデス。みいそ2.xだけデモ微妙に変わって居枡。BSDは亦違ィ枡から特定のコードにパッチわ ちょっと... # 蛇足デスがえぷや他社のも亦違ィ枡。ICMのEXFORMと緑の大磁主を確認
|
 |
IPL讀んでみた かかっくん 2024年12月4日(水) 3:12 |
IPL嫁と云う事で、同じく讀んでみますた。ロードアドレスのリミットが2000:0ナノわ此のIPLが 1FC0:0(1FE0:0?)に在るからデスね # 標準フォーマットがLBA 0にOSのIPL其の物を置くのも此れが理由か! # みいそ2.70/2.30でわCSの下位3C0hにESを定めてロードする。此れデモ512B/SでLBA 0〜29をロード # 出来る。みいそ2.10わCSの下位240h # みいそ1.03 1DC0h(定数) # みいそ1.05 1DC0h(定数) # IPLのロード時点わ他にプログラムをロードして居ないのでもっと下げる事も可。但しOSのロードで上書き # される事に留意 恐らくみいそ1.xわ1DC0h(定数)で、2.xわCSの下位にするやうデスな
2000:0の根拠わお得意の『互換性の権化』に由る物でRAM 128Kを引き摺って居るのデス。幾らOSが対応 しない(128KでわDOS6の起動中にOut of memory)と云っても明後日の方にロードするワケにわ往きません から
BSDわメニューを3000:0にロードするので2000:0の枷わ無いでせう github.com/freebsd/freebsd-src/blob/5b2161e51b74d960f1d95724c0753ecf4a35b483/sys/boot/pc98/boot0/boot0.s
で、何処ぞに有るPC-9801プログラマーズBibleの頁265に
> ・データバッファは, 複数のDMAパンクにまたがってはいけません. > (286以上のマシンでは, BIOSを使って制御する場合には, 関係ありません. )
と有り、他の文献にも遣えそーな記述が有馬す。実わ余り問題に成らないの鴨? # 真坂FDの場合だけぢゃあるまいな? デモDMAなSCSI板わ8086/V30と286+で設定を変えた記憶が無い希ガス、矢っ張り駄目か? 別バッファか6000:100にロードしてから5F00:100に写す鹿?
ところで、過去ログの通りFreeDOS(98)のIPLの文字列をいじった物でみいそ・えぷDOSの起動が出来枡 から、懸案だったSYS.EXE問題わ余り無さそーな気がし枡。此れもFreeDOS(98)のSYS.COMから FDSK98/FORMATXに組み込む仕様にする(DOS転送時に起動領域のDOSを認識して文字列を変える)とか 其れを基にして新たに創るとか? DOS Boot Loader (C)DOSsoft まりも とか?エラーに成ったら(C)以降を表示せずLoaderをError!にするとか? 文字列わ其の儘でなくVRAMに書き込むデータにして置けばrep movsでの転送で済み枡 # 窓9xわ起動しないのでDOSとIPLを転送せず窓9xのFORMAT.COM @: /Sで。SYS @:デモ出来ましたっけ?
---
1E push ds 56 push si 06 push es 57 push di 51 push cx 50 push ax B8 10 60 mov ax,6010h 8E D8 mov ds,ax FE CC dec ah 8E C0 mov es,ax 89 D9 mov cx,bx 33 F6 xor si,si 33 FF xor di,di ; D1 E9 shr cx,1 FC cld F3 A4 rep movsb ; F3 A5 rep movsw 58 pop ax 59 pop cx 5F pop di 07 pop es 5E pop si 1F pop ds movsbで計30バイト・movswなら32バイト、憶ったより長ィな あとセクタ番号(-8)とセクタ数(+8)の調整が有馬す
デモIDEにCFや大容量SSDと、DMAだけの劇遅SCSI板との併用ユーザが何れ位居枡かねぇ? # DMA境界を考慮する件、PIOやバスマスタ・SMITや、PCI SCSIならDMA境界は無関係な筈 少数であれば其の方々にレクチャーすれば良さそーな肝? 少数の為に大多数の利便性を損ねるのわよろしくナイやうな?
---
卓袱台返しに成り恐縮デスが、良く考えたらターゲットの98で組み込むのでわなくUSB接続したPCで組み 込んだ上で98に接続すると云う方法が有りそーデス。此れならGUIの窓アプリで創れそーな? PCにデバイスとしてだけ認識させddのやうに直接R/Wすれば目的が果たせそーな? 対象のストレージのフォーマットからBSDメニュー・IPLware・必要なツール・FreeDOS(98)のインスコ迄を 其々をDLして貰うだけで対応出来そーデスが
あーデモ、実機でみいそ・えぷDOSのインスコの際に領域確保をやり直すと消えるのか、みいそ・えぷDOSの インスコも窓でする鹿(!) 窓9x/NT系なら領域だけのFORMATで済み枡が
|
EPSON機の2G壁 リウ 2024年12月5日(木) 1:21 |
x.com/xtv183/status/1667351581036253184 EPSON機の謎.txt内ではシリンダ数が固定されてるのでは?と予想しましたがこの写真で全て説明が付きました。 メディア側が4:17です。 BIOS側が8:17なのにメディア側と一致してません!なんとFIXIDECF適用状態と同じになっています。 EPSON機でWin95のドライバがはねるのはNECの543MiB壁機とはまた違う原因だったということです。 今もこのあたりの機種(ノート含む)をお持ちの方はideinfやidedevを使ってみてfdsk98の示すBIOSパラメータが8:17なのにcurrent CHSが4:17になっているかを確認していただきたいです。そうなっていればその当時の機種の2G壁はこれが原因です。
0650追記 さっそくの確認ありがとうございます。486HAはメディアとBIOSが一致する、と見て良さそうです。そうなると一度だけ2G壁が発生した、という現象が気になってしまいます。 MK2224の方はcurrent値で報告すべきものをnative値で反応してしまうのでしょうか、古いものはやはり面白い反応です。(同じ指摘をほぼ同時刻に!失礼いたしました。)
0854追記 >256B/Sの実現方法が違うのではないか? 連続セクタアクセスで飛び飛びができなさそうな気がしますが、やはり中身をみないとわかりませんね。しかしその可能性はとてもわかりやすい差でもあります。
1935追記 586MVにも256B/S設定は残っています。この機種のモノでは512Byteの読み書きバッファを使って無理矢理256B/Sに見せかけています。ので先頭からびっしり埋められ、容量の半減は起こしません。(と書きましたが実際には試していません、コードを読んだだけです。) 不遇の機種RaIIがパッチによって救われた状態のIDEBIOSに対してはLBAパッチが仕事をできないことに気づきました。やはりEXIDECBが適用済みでも通るようにしておく必要はありますね。PCIがあるからSATAやSCSIを使ってよ、と言っても標準装備はやはり強いですので。
|
486HAの場合 KAZZEZ 2024年12月5日(木) 2:51 |
486HAが「このあたりの機種」に該当するのかどうかは存じませんが、以前なぜかフォーマッタで2.1GBくらいまでしか見えない場合があった記憶がありますので、一応idedev -d0だけ、いくつか調べてみました。HDD200MBとCF2GB/4GBのものです。とりあえず今回は4GBのCFのパーティション(2GB×2)も普通に見えているようでした。接続するHDD/CFによっても異なるのでしょうか…。
|
   |
MK2224のNative値ってCurrent値? かかっくん 2024年12月5日(木) 6:58 |
MK2224のNativeデスが、製品本来のCHSでわナイやうデスね。CHSの設定自体わされて居そーな? 何故なら200MのモノをC値1024以上で出す筈が無いからデス
T芝の*:17の2.5IDEを遣った事が有馬すが、40Mで900数十:5:17(円盤1マイ)、80Mで900数十:10:17(2マイ) ですた # 初期〜中期のJ31わ特定のCHS値のHDD鹿認識せず、ROMのUpd(本体共送る)が有ったが逆に他社品等を # 認識しなく成ったレイも有り
486HXにアだたのCF 1Gを憑けた際わ粗フルで認識した(多分端数切捨わ有り)ので設定されたやうデス
ところで亀レス NSにも20M厚型(約300:8:17)・薄型(約600:4:17)の設定が有るやうデスからIPLwareで厚型に設定すれば 8:17で通る鴨、逆にC値の制限が有る可(略)
|
MCtek 2024年12月5日(木) 17:43 |
> FIXIDECF 論理的には8:17で、ドライブとのやりとりだけ16:63パラメータにするということが可能だったとは…! 色々な方向の互換性を考えても一番トラブルが少なさそうですね。INIC2051にも最適そうです。
> EXIDE543はもう完全にゴミとなります そんなことは…! FC1307AはCFリセットが発生しないので、容量制限状態で使うならEXIDE543の方が多く領域を使えます。
> 家中のXa/WやRa を処分してFC-9821Kaを買う FC-9821KaのITFはXa/Wそのままのようで、機種判定もそうなりますし、システムセットアップメニューには物理的に存在しないPCMサウンドを切り離すかどうかのメニューが残っています。Xa16/W(の中身)は手放してしまったため比較まではできませんが。 端子盤のリセットですが、リモート電源機能などがついているせいかこの部分は子基板実装になっており、信号を追うのは少々骨そうです。 表に出してあるので、近いうちには… 余談ですが、バックアップ電池(ML/VL)は電源ONしないと充電されないタイプでした。(スタンバイ状態でも充電されるのは流星・青札・Cerebあたりだけでしょうかね。)
色々と目途がついたので、正常に動く小容量のHDDは売りに出してしまおうかと考えておりますが、もし研究用に必要な機種がありましたらお声がけいただければ。手始めに170MB、340MB、420MBあたりから…。
|
今後の見通し まりも 2024年12月5日(木) 18:24 |
>256B/Sの実現方法が違うのではないか? 今朝書きかけて削除したこれですが、BIOSの実装的にはセクタ番地は変えずに半分だけ使うというのは簡単なので、ありそうかなと思ったわけです。しかしそれじゃ容量半減で商品としてどうなんだろう、あり得ないのでは?と思って削除しました。でも決着はつけないといけないですよね。586Mvだと256B/sの設定はもう廃止されているのですよね? おふがおさんの486FRでも買っておくかな。
>EXIDE543の方が FIXIDECFで第0-第2世代の最小限パッチ部分に共通性があることはわかってきたので、今日のうち魔の割り算ルーチンはなんとかします【追記4351MiB対応しました】。FIXIDECFは当初予定では小さく作ることを主眼としていましたが、IPL本体のパッチで8セクタ(以上も可)使えそうな見通しとなったので、さほどサイズは気にせず機種世代特例のルーチンを追加できます。
自サイトのコンテンツ数が多すぎて“足の踏み場がない”ので、なるべく機能的に被るものはまとめようと思っています。
>信号を追うのは少々骨そうです そうですか、Kaはバラック動作が難しく組んだ状態でないといけない雰囲気もありますよね。リセット共通線を容易に(省力化して)探すための方法を考えないとなりません。
ソフト的に I/O 534hのbit0を反転して書き込めばこの線は駆動されると見ています。ならばFDLOADERアプリとしてこれを作れば、ひたすらハードウェアリセットを繰り返すソフトになります。これを走らせて、負論理でアサートされるところをひたすらオシロのプローブで突いて探す、というのはどうでしょうかね。正月休みにでもXa/Wを一台潰すつもりでやってみます。除夜の鐘を聞きながら、108回のピポ、で見つかればいいですけど。
|
初期値=512設定でわ? かかっくん@出先 2024年12月5日(木) 19:29 |
>>256B/Sの実現方法が違うのではないか? > 今朝書きかけて削除したこれですが、BIOSの実装的にはセクタ番地は変えずに半分だけ使うというのは簡単なので、ありそうかなと思ったわけです。しかしそれじゃ容量半減で商品としてどうなんだろう、あり得ないのでは?と思って削除しました。でも決着はつけないといけなですよね。586Mvだと256B/sの設定はもう廃止されているのですよね? おふがおさんの486FRでも買っておくかな。
元から256設定で賣るなら兎も角、512設定で賣るのならマニュアルに 『256設定は容量が半分に成るから要求するOSで遣う場合のみ設定する』 旨書けば其の場を凌げそーな?
256B/Sの実装として512B/Sの前半だけを遣うと云う方式わ確かに考えが付き枡。当然サイズわ半分に成増 他にアプリ・DRV等からのS値を半分(shr reg,1)にして余り0(NC)なら前半、余り1(Cy)わ後半を R/Wする方式も有馬す。書き込む場合わ前後半を讀んでから変更するRead-Modify-Write(RmW)に 成増から出来るだけ纏まった単位のが速く成増ね
<del>何れにせよワークエリアが必要に成増(後者わ勿論、前者も後半をダミーで埋める為)</del> ん?前者わrep outswで256バイト送り込んだらRAM上に無くても xor ax,ax mov cx,80h rep out dx,ax でダミーを送り込めば良いのか # outわinよりもタイミングがシビアらιぃ
|
パラダイムシフトの瞬間 まりも 2024年12月6日(金) 10:53 |
そういえば、今まで喧伝してきたこれのようなもの(EPSON機は関係ない?) ttps://x.com/xtv183/status/1667351581036253184 「論理H:Sと物理H:Sが不一致なのは危ない、CFリセットです」という説明は、FIXIDECF適用後は不要どころか誤りになるのですよね。積極的に不一致にしているのですから。
自サイト内のあちこちにもこの趣旨のことが書かれているような気がするので、全部確認のうえ改めないとまずいですね。まずはIDEDEVの説明書でしょうか。FIXIDECFで地動説が天動説になった感がありますが、人々の間に広まるには時間がかかるのでしょう。
|
FIXIDECFの1.03と1.10で リウ 2024年12月7日(土) 0:37 |
FIXIDECF.Sの139行目 LBA_IDEの改造時にAsでの動作を手元で確かめていたのはFIXIDECFの1.01でした。1.03はXaでしか試していませんでした。後から言ってすみません。 FIXIDECFの1.03から0000:05A7hに数値が入っています。そのせいでLBA_IDEを非PCI機で動かそうとすると問題が発生しています。
1.10はCr13では問題なく動作しました。上からLBA_IDEも動作してくれました。
面倒事を押し付けてすみません。
0825追記 お返事ありがとうございます。以前の協約では0000:05A7hはIO53Dhへの出力値を保管しておくことになっておりました。と思っています。(1.20での対応ありがとうございました。) 今朝確認したところ1.03のパッチ内容でLBA_IDEは動作できます。 1.10で4351対応になりましたところLBA_IDEが拒否してしまっているのでこれは修正予定に入れました。 0846追記 F8E8:001Eはどうでしょうか?sumチェックが必要な場所ではありますが必ず空いています。(FFFFで埋まっている01BXのような機種もありますが…)0857追記ダメですね、リセットした瞬間にROMに戻(って再コピーす)る機種とRAMのままの機種がありますからここはダメです。ROMに戻されて実行フラグも落ちるからヨシ!とはならないですよね。
21時頃にLBA_IDEのFIXIDECF1.20連動版、exidecb対応版をアップロードしました。
|
適用済みフラグ まりも 2024年12月7日(土) 8:13 |
多重の実行を簡便な方法で検出するため、FIXIDECFが適用(実行)済みかどうかの情報を、システム共通域に置いておく必要があると思ったのですが、0:5A7hの不使用bit 0ではまずかったですか。D800:2000h内のどこかにすればいいのですが、世代によって使い方がめちゃくちゃだし、EXIDEのROMアプリ段階でも少し使うし、LBA_IDEでも相当に使うので、どこに置くのが安全なのかよくわからないのですよね。むしろBIOS本体の末尾に近いD800:1FFDhあたりに置くのが良さそうですかね。本当の末尾1ワードのD800:1FFEhは、チェックサムとして使われるようなので避けます。
ちなみに多重実行の検出だけでなく、未適用の時は、「98で使えないやつ」ではCHSのアドレスが正しくない可能性があるということを知る意味でも使う予定でいます。
ところでXt13ではEXIDECBが通らないのですか。これは困った、、、同時期のSt20は通るのにですね。Xa山猫の初期のG8TTYの頃にはない付け足しが、後の機種からは見られるのですが、そのせいでしょうかね。G8USLという形式からしてもXt13って結構設計も古そうなのですよね。
【840追記】1.10での変更点は第1-2世代の魔の割り算のところだけです。割り算直前のmov cx,0011h がなくなり0088hに一旦なります。その後16:63なら3F0hになります。ここを探しているとすると、見つからないということになると思います。 【12時追記】PCI機種版EXIDECBとEXIDE55Xは、初期化時に通るルーチン(容量ごとのHSパラメータ設定)をD800セグメントから追い出してメインメモリの5C00:2000あたりを使っています。それが原因でLBA_IDEを後から実行するとハングアップになるのではないでしょうかね。
FIXIDECFは上記の適用済みフラグの場所の変更(0000:0455hのbit 1を使うことにした)と初代A-mateのサウンドBIOS判別法の変更でバージョンアップしました。今年の春に発見した、I/O 0468-46Cを使う方法がどうも確実ではないようです。先に機種判別してあることから、もう直にCC000hにSOUND BIOS のコードがあるかを見に行くことにしました。
初代A-mateで、内蔵サウンドを殺して86ボードを入れる人なんていないですよね?故障や音質不良のためやっているという人はいるかもしれないですが、そのA-mateを窓から放り投げて9821Xeにすることをお勧めするしかないです。
|
I/O 63Ehの機能と実体 まりも 2024年12月7日(土) 16:19 |
Xですが濃すぎるのでここで ttps://x.com/_1_k/status/1865229244575699057 >Vpp の電圧制御ができなくなるだけなら、5V only で動くフラッシュメモリなら制約は無さそう そうは問屋が卸してくれないのがミイソなのです。Vppを、本体にあるトランジスタから切り離して印加しようがしまいが、5VフラッシュのRESET/WriteProtectピンを制御しようが、メモリライトアクセスができないようにロックされています。12V/5Vの制御だけではないのです。FDloaderの段階以外では全然ダメなようです。 フラッシュのWE信号まで切り離して自前で制御すればどうにかなるかもしれませんが、試したことはありません。Cバスライザーに来ているMWE信号から取り出せるのか、来ていても間に合うのかもわかっていません。でもリセット線探しのついでなので、オシロで見てみますかね。
|
リセット追跡24時 まりも 2024年12月11日(水) 0:21 |
ttps://x.com/OffGao6502/status/1866490755138949388 D2270Aとはまた旧式というか伝統的な、、、もしかしてKaは電源管理はXa/Wとは全然違うのかも。というか電源コネクタはATX20ではなくAT電源のP9,P8コネクタじゃないですか。電源管理関連のITF/BIOSのコードは全然違っていそうです。
しかしシステム共通リセット線はあちこちにあるはずです。BGAのstar alpha2ではない、QFPのもう一つのLSI(D95ナントカ、バッテリの下)にも行っているはずです。
|
FC-9821Ka ≒ PC-9821Xa16/W おふがお 2024年12月11日(水) 2:19 |
調べてみましたが、コイン電池の下にいたD95なんたらには、リセット線は通ってませんでした。 2270Aから出ているリセット信号は、リセットボタンや電源断などのハードウェア由来のものだけで、共通リセット信号にするにはこれにソフトウェア由来のリセットも含めなければいけないはずです。 そのハードソフトの混合をSTAR ALPHA2内でやってる感じです。
電源はコネクタはAT仕様ですが、追加のコネクタでスタンバイ用5Vがあったりと、中身はATX電源と同等ですね。そのおかげで、外部信号で電源ONできる機構も有ります。 Xa/W系とその辺りはあまり変わらないと思います。セットアップメニューも、存在しないサウンド有効/無効&INT設定の項目があるぐらい、Xa/Wと変わりません。
|
IDE物理H:S=16:63(=native)の限界点 まりも 2024年12月14日(土) 11:11 |
>STAR ALPHA2内でやってる感じ うーむそれですか。外部リセット線が駆動されたときはメモリチェックが短縮になるということなので、power goodのときのそれとはまた別なんでしょうね。それでもD95なんちゃらのチップには共通リセット線は繋がっているはずという方向で、Xa/Wを徹底解剖してみます。FC-9821Kaはやっぱりお値段高いです。
ところで表題の件ですが、32255MiB以上のときは、IDEデバイス側がシリンダアドレスを受け付けないかラップアラウンドするという問題があります。ディスクのアドレスがCHSに分解されて渡されたときに、シリンダ番号が16bitからあふれるためです。このため新規のEXIDE2Gn V5では32255MiBで打ち切りとしています。
では従来のEXIDEではこれをどうするか。32255MiB以上のときは物理H:Sを論理H:Sと同一にすれば(それが可能なほとんどのデバイスについては)問題ありませんが、「98で使えないSSD」や「CFリセット」をなんとかする効力については無効となってしまい逆戻りです。
32GBを超えるようなストレージはWindows2000を入れるのでなければ必要ないでしょうから、IDE BIOS第4世代以外は、全てのデバイスの容量上限を32255MiBとしてもいいでしょう。それ以上はIDE-BIOS-LBA-patchを使えばいいわけですし。
使えないものを使えるようにすることのほうを、容量上限を無駄に大きくすることより優先したいと思います。
|
EPSON内蔵IDEで使えないHDD リウ 2024年12月14日(土) 11:33 |
少しずれますがidedevの機能についての提案です。以下のものを表示するだけのものを私が書くでもよいのですけれども集約されていたほうが?と思いました。丸投げしてしまうことにもなりご負担でしたら無視してください。
EPSON PC-586MVの内蔵IDEはIO74ehの反応を見ています。規格ではbit0がマスタ接続中、bit1がスレーブ接続中で落ちることになっていますが、ルール破りデバイスは存在します。(CFやSDは00を返すモノが多いようです。SATA変換チップもこの返事をFFにしがち?)未接続だとFFが返るはずが、繋がっていてもFFや7Fを返すHDDもありました。これらはEPSON機ではBIOSから存在無視をされます。EPSON機用のROM吸い出しプログラム ww7b.biglobe.ne.jp/~drachen6jp/geteprom.zip とそれの読解で今まで報告されてきた状況証拠の答えはほぼ出たと思っています。
このIOの返事も出力されると便利?と思いました。
|
IDEDEVの年末大掃除 まりも 2024年12月14日(土) 14:57 |
確かにIDEDEV -dnではIO74ehを叩いているところがありません。ATAコマンドの返すステータスしか見ていません。いくつかのデバイスではこれもおかしな値になりますか? 非常に古いATAPIデバイスではそういうのがあります。
「EPSON機で使えない」「NEC 98で使えない」など具体的結果も表示できるようにすべきかなと考えています。パラメータや準拠スペックを表示するだけの現状は不親切ではあります。
そのほかとりあえず直す必要があると思っているのは、I/O 430hの返り値で初代A-mate,初代B、Ceなど、「セカンダリポートが存在しない」機種を判別するところです。EPSON機では構わずセカンダリが使えるようなので、この判別法を使わないようにしないとなりません。
|
I/O 074E=I/O 03F7h/0377h かかっくん 2024年12月15日(日) 14:02 |
I/O 074Ehと云えばPCでわ03F7h(P)/0377h(S)デスから、当該デバイスをPCでI/O 03F7h/0377hがド〜成るか?を 調べて見るのも一つでせう。結果が何時も同じに成るか違う事も有るのか?
>>STAR ALPHA2内でやってる感じ > うーむそれですか。外部リセット線が駆動されたときはメモリチェックが短縮になるということなので、power goodのときのそれとはまた別なんでしょうね。それでもD95なんちゃらのチップには共通リセット線は繋がっているはずという方向で、Xa/Wを徹底解剖してみます。FC-9821Kaはやっぱりお値段高いです。
繰り返し枡が、PGリセットわ本来『PowerがGoodでなくなった(瞬停等)』事を意味し枡からRESETアサートと 異なり電源入と同様のチェックがされるでせう
ところでY!に有ったFC-9821Kaは幾らに成ったでせう?<del>今日迄で¥29k</del>¥64kか、お高価い... 全くの不動品なら躊躇無く☆α2を剥がせ枡が曲がり形にも動くと遣いたく(略)
|
IDEのハードウェアI/OがあるPC/ATも今や絶滅 まりも 2024年12月15日(日) 16:40 |
I/O 074Ehに繋がっているATAレジスタ名がなんであるかも知らなかったりしますが、98では使われてないのですよね。なぜにEPSON機ではそんなところをいじっているのでしょう? >Y!に有ったFC-9821Kaー全くの不動品なら 「起動はするが読み込まない」らしいですね。FDDがFD1238Tで、ベルトのゴム劣化というだけの理由でしょう。しかしFD1231Tにすると置き場がなくなるし防塵性もなくなるので、ここは大きな減点対象という気がします。
ところでMulti 9821CeのIDE BIOSは第1世代で内容が初代A-mateと完全一致でしょうか? EXIDEのA-mate,B-FELLOW初代用を統合しましたが、もしかしてCeも変更なしでいけるのかなと。ワークエリアRAMの参照で使うのがCS:かES:かが問題ですが、これらは混ざっても動作してしまいます。あとはCeのサウンドBIOSの存在検出法がわかるとなおよいですけど。
|
PC/ATではFDCのポートと被っていたり リウ 2024年12月15日(日) 17:23 |
3F7hはAT互換機ではFDCのポートだったりで実際はAT互換機でもこのレジスタを使うことはないようです。もちろん今時の機械にATAはもはや搭載されていないわけですが…
NEC98がIOをコピーしながらもそのレジスタの機能をBIOSでは全く使っていない?ようですが、EPSONは接続チェックに使ってしまったせい(IO F0hの互換がないため?)で面倒が起こっていると私は解析しましたが、もちろん一人では検証はできておりません。
やれるかは別として、アイデアとしてfdloaderでロードしたROMにパッチをしてRAMに書き込み、そこでinitial firmware testを実行してからBIOSロード ということを思いついたりしてみましたが、実現性はどうでしょうかね。CPUチェッカ抜けが一番やりたいことですけれども、まずは0除算ルーチンのアドレス上書きとそこにdiv0romを仕込む、という頭ではいます。とにかくITF段階ではすぐにRAMからROMに戻ろうとするはずなのでそこを全てパッチしなくちゃいけない、という想定ができてしまってなかなか手は動きそうにありませんが
|
FDloaderのヤバい応用 まりも 2024年12月16日(月) 8:49 |
FDloaderの段階では次のような特徴があります ・直前までは純粋ROMコードで実行、スタックが使われていない ・640KBメインメモリは仮設定であり通常起動とは違う(PCI機) ・シャドウRAMも未初期化 ・CバスボードのROMは見えるが、EMSのRAMボードは見えるようにできないかも(特定のPCI機) CPUチェッカ抜け(Cyrix C3を使うためGenuine Intelチェックの回避)はKAZZEZさんが試されてたと思います。FDloaderのあと I/O F0hで再起動でしたっけ? 機種によってはシャドウRAM出現状態で不都合が起こると思います。I/O 534hで再起動だとCPUチェックも入り初期設定されそうな気がします。一度電源を入れて通常起動をしてあればメモリチェックは高速になるはずですが、そこで不具合が出るかも。一度も通常起動をしていない場合は厳重チェックになってしまって、何もかも壊されると思います。(わたしが探しているのはこの状態を記憶するハードウェアI/O(FlipFlop)または裏KCGメモリ)
その他の可能性として、FDloaderで何かを実行したあと、ITFのROMコードの任意のところにまた容易に戻れるのではないか、というのがあります。スタックが使われているとこういうことはできませんが、使われていないからです。予め解析して例えばCPUチェック後の場所を見つけておき、そこに絶対ジャンプできるのではというわけです。FDloaderへの分岐点に近い処理段階のところへなら戻れる可能性はあるのでは。それはメモリの確立以前(シャドウRAMも未設定)なので、div0ROMの仕込みには使えないかもという気はしていますが、やってみないことには分かりません。FDloaderデバッガをパワーアップしていろいろやってみますか。
|
FDDに被せるカバーとか かかっくん 2024年12月16日(月) 11:08 |
>>Y!に有ったFC-9821Kaー全くの不動品なら > 「起動はするが読み込まない」らしいですね。FDDがFD1238Tで、ベルトのゴム劣化というだけの理由でしょう。しかしFD1231Tにすると置き場がなくなるし防塵性もなくなるので、ここは大きな減点対象という気がします。
1138T/1139T辺りなら元の位置に収まりそーな気がし枡し防塵性わ4面を密閉して正面と背面の コネクタ部だけを開けたカバー(ネジ穴わゴムブッシュを通す(隙間が無ければ不要)、コネクタ部わ 軟質ゴム系の材料を貼り付けて塞ぐ)で防げそーな?あとFD不使用時にベゼルにテープを貼り付けるとか # 嘗てFDDにフラップが無かった頃の苹果機にプラ製のカバーを使用、ファンが憑いたSE/II頃 # だったかもっと後年か
|
FC-98のFDDユニットはランドコンピュータの方が良いものの… おふがお 2024年12月16日(月) 15:19 |
>>Y!に有ったFC-9821Kaー全くの不動品なら・・・ 手持ちのFC-9821Kaがまさにそうでした。 両側に銀の取っ手がある純正モジュールで、FDDはベルトのあるFD1238Tで、当然ベルトが切れてて空回りしてました。
一方、FC-9801Kにひっついてたものは、FD1148Tが使われていました。FD1238Tが付いてたモジュールの方も、スリムFDD用マウンタを外すことで、FD1138T系が付けられます。(なおコネクタ基板配線は変換必要)
ちなみに、ランドコンピュータのものはFD-235HG(C897-U5)で、2台中2台全てで未メンテで一発正常動作しました。 ただし、2DD切り替えはFD穴判断、2台目用1.44Mピンが通ってないどころかGNDに落とし邪魔するなど、回路の詰めは甘いです。 いちおう、FC-9821K系ならFDD兼用スロットは1スロットしか無いので、問題にはなりません。
俺はCバスライザー裏にピンヘッダを生やす等して、Cバス左のHDD用ベイにFDD2台取り付けちゃいますけどね。
|
デバイスの動作チェック用のPCとか かかっくん 2024年12月16日(月) 20:47 |
> IDEのハードウェアI/OがあるPC/ATも今や絶滅
> PC/ATではFDCのポートと被っていたり > 3F7hはAT互換機ではFDCのポートだったりで実際はAT互換機でもこのレジスタを使うことはないようです。もちろん今時の機械にATAはもはや搭載されていないわけですが…
PCからレガシーBIOSが全廃され、CPUのA20も廃止され、EFI/モダンなOSにシフトとした今日でわ SATAがATA互換なんてのも粗意味が無く成りつつ有馬す(SATAのネイティブわAHCI)からねぇ
【デバイスの】動作チェック用に486〜430FX/HX/VX辺りのPCが有ると作業が捗りそーな? # 386迄のわ国内で普及して居なかった事もあり色々面倒ナノで避けるのが賢明 動作が素直ナノわ486機デスが動作するタマ数が...電源がATコネクタ(ATX-AT変換ハーネスわ今や稀少) だったり機種によってわキーボードもATコネクタだったりIDEにLargeやLBAが無い528/504壁だったり # ATコネクタ用部品わ嘗てわ千石とかデモ扱いが有ったが現在わ扱いナシ # 浦部中央製作所UJR5001とか既存の端子ピンが遣えるATコネクタ用ハウジングとか設計し枡か、 # もう有馬すかねぇ? # 個人使用なら間に合わせに遣えそーなのを遣うのは仕方無くてもプロの仕事としてわ仕様外のを # 遣うのわ失格、悪魔デモ各自の責任で個人使用に留める事 # UJR5001 www.sengoku.co.jp/mod/sgk_cart/search.php?multi=UJR5001
えぷ販のViヴィdyわ機種に依ってRTCが電池入りのだったり486にPCIが有ったりするので 素直とわ(略) # RTCのパッケージを割れば電池が入って居るだけナノで交換わフカ能でわナイ
OSわFreeDOS/V(公式のDOSとの互換性わ98用より遙かに高い)辺りとか?今更新規でMS/PC DOSや PC用の窓9xとかを飼う意味わ余り無いでせう
ところで、3F7h/377hの指摘が有ったので窓7PCのSATA I/Fを確認した処、I/Oが 1F0h-1F7h 3F6h-3F6h
170h-177h 376h-376h と有り、3F7h/377hは有馬せんですた 此れ等のレジスタわデバイスの方に有馬す(ホスト側わアドレスデコーダのみ)から、今時の (又わSATA他から変換した物)にわレジスタ自体が無いの鴨知れません
と憶ってATAの仕様書を参照した処、ATA-2('96)の仕様書にわ早くも web.archive.org/web/20110728081254/www.t13.org/Documents/UploadedDocuments/project/d0948r4c-ATA-2.pdf 頁16(PDF頁32) Table 7
Note 1 - This register is obsolete. It is recommended that a device not respond to a read of this address. If a device does respond, it shall be sure not to drive the DD7 signal to prevent possible conflict with floppy disk implementations.
と有馬す。而も「応答しない方が良い。応答するならD7を駆動すべからず」と迄書かれて居枡。 詰まり仕様上わ対応しない方が良いと云う事デス。3F7hを参照する方が惡いと云う事でせう とするとIDE HDDにも中大容量品とか(当時 10G以上とか)で認識しない物が有る鴨 # 91hよりも早い廃止か
えぷの調べ方わ採用当初わ通用しても今日でわ間違ィと云う事デスな。此のコードわパッチして排除排除 # HDD 1にするならFD(OS)IPLwareかROM必須に成増
|
Obsolete! リウ 2024年12月17日(火) 13:12 |
 >It shall be sure not to drive the DD7 signal PC-586MVでは一発で認識しないHDDがこのIOには7Fを返すタイプなのですが、むしろこれが規格どおりの返事というわけですか。資料発掘ありがとうございます。当時のEPSONがこの変更を無視する程度には当時のHDDが削除前仕様で返事を出していたのだとは思いますが、これだと現行のSATA変換はちょっとダメそうですね。手元で再確認してみます。
本体は手元にはありませんが(いろいろな経緯の結果、うちに届いた)CeのIDEBIOSはIO432hに触らないタイプのCSprefixな543MiB壁でシリンダ数を2042h(直接)に保管するタイプ(すなわち私的分類では第1世代のものでAsのものとバイナリも一致しました)でした。
epsonの74e対策の手術は大変と思います。ITFのかなり初期に接続情報として使っていますのでIDEBIOS自体が隠れてしまいます、一応lba_idepとして提出したモノは4台分の面倒は見るようにしていますが…残念ながら586MV以外の動作報告は一件も来ておりません。
22:55追記 ダメと頭ごなしに書いてしまいすみません。ITF段階で左側のコードが存在しまして…。IDEからの返事がFFFFだった場合はここでD700から4kBを写してない状態になります。これを手動でやった上で右側のIDEのAH=03INIT部分での再チェックを抜けるように書き換えることができれば…
|
EPSON IDE BIOSを手術 まりも 2024年12月17日(火) 17:50 |
IDEのI/O 74Ehに何を返すかはデバイスによってバラバラで、特定の値だからEPSON機でダメなヤツというのが実機持っていないと分かりません。さわってもいけない廃止レジスタということで、これはもうEPSON機のIDE BIOSのほうを直すしかないように思います。大袈裟にやるならEPSON版EXIDEEPということになりますが、74Ehを読んだ結果を評価するところを飛ばすというだけのパッチなら、div0ROMに混ぜることもできます。どんなパターンでしょうか?
Multi 9821CeのIDE BIOSが初代A-mateと同じ(CS:)ということで、開発時期的にはCeやA-mateのほうがB-FELLOWよりも先なのかというのが見えてきました。機種が先に特定できればサウンドBIOSの検出は直接CC000を見にゆけばよいので、検出法にはこだわらなくて済みそうです。
【2222追記】>ITFのかなり初期に接続情報として使って あぁこれはミイソ機でのF0hチェックと同等ですね。IDE BIOSではなくITFの段階(IDE BIOSのROMをRAMに転送する前)でやっていますから、介入不可です。EPSON機版FDloaderというものが可能なのかどうか、可能としてもそこに行けるかもわかりません。
|
98/286の裏を探る かかっくん 2024年12月17日(火) 23:39 |
同名のThe BASIC 1990/11の記事より
まぁ筆者わUndoc2と同じ小高氏デスからUndoc2に有る内容と粗同様デスが、Undoc2に無い内容として SHUT0/1に付いて、SHUT0が0の場合SHUT1が不問ナノわSHUT0を先にチェックし0ならSHUT1を チェックせずSS:SPを設定しRETFだからだそーで。 リセットSWの場合わ8255のポートが入力に成りPUで1を入力する事から1,1でITF実行だとか
あと機種に依ってわCPUを切り替えるとシステム共通域の値が変わるそーデス。此れもUndoc2に 有馬せんね 尚VX21のROMわ此の機構でわ切り替わらないそーデス。ハードウェア的に切り替えて居るんデス かねぇ?デモDIP SW3-8って(略)?
|
DISK BASICをBASIC FD以外で起動する(?) かかっくん 2024年12月18日(水) 3:58 |
同じくざべ 1993/11より 小高氏が新のてをレビューして居枡が、BASICのエントリ部のリストを見るとROM BASICのエントリと DISK BASICのエントリのアドレスが違ゥ事が解り枡 ROM BASICわお馴染みE800:0デスがDISK BASICのエントリわE800:2だそーで。 あと記事にわPC-9801PでROM BASICの起動法も載って居枡。上↑でお分かりでせう
|
えぷのコードが難讀ナノわみいその所為 かかっくん 2024年12月18日(水) 12:51 |
in al,dxの前のout dx,alが意味不明デスがおいといて。
其れにしても、PC-586が出たのって何時頃でしたっけ?ATA-2の規格書わレイのが'96デスが ATA-2でわもっと前の版からObsoleteの筈デスから直さなかったのわえぷの堕ち度でせう まぁ当時えぷが採用したHDDに認識不良が無かったのでせう、其れとも認識不良が有ったのを 避けただけ?プログラムの不備の方を放置して? 真坂ずっと前に書いたえぷのて用の認識部を其の儘にし續けた?
|
ちょっとだけ実験 リウ 2024年12月18日(水) 14:57 |
腰を入れてやったわけではありません。 Ide40pinへのJmicronの変換アダプタが2種、marvelなものが1種手元にあります。 このうちjmicronの片方しかうちではどうもうまく動きません、片方はio433hのbit0が立ってしまうタイプでした。marvelのものはメモリチェック後暴走してしまいます。(原因追いかけていません)
これをXb10で確認するとIO 74ehの反応はFFでした。そのまま586MVに持って行っても動作しないだろうと予想しましたがすんなり立ち上がって74ehの反応を確認すると7Fを返してきました。 out 74e ffhが何かの意味を持つ?と予想してそれをXb10でもやりましたが返事はFFのままです。Xb10にCFアダプタをつなぐと返事は00となり繋がっているのは確実です。古いHDDでFEhを返すものも確認はしました。NEC機につないだ状態で74ehの反応だけを見てEPSON機で使えない、と断定はできないようです。提案をしましたが、そのままではダメな判定のようです。
追記 www.os2museum.com/files/docs/ata/ata-r4-utf8.txt ATAの初期の頃の文章がwebにありました。
19日日付変更時追記 更新お疲れさまです。 8G壁ノートNw133のHDD諸元置き場はD800:2700からになります。 D800:2300になるものは手元では430MX機のNa15でしか確認をできていません。 PAT4GRIM.S内ルーチンPtn4R_IDPの2行目 75h 1ehの部分 手元のNw133では 75h 27hと飛び先が違うことを知っています。 LBA_IDE.asmの528行目あたりに一応入れています。 Nw133でFIXIDECFの1.30を実行するとIDEBIOSが出現していません、と表示されました。
|
FIXIDECF 1.30 まりも 2024年12月18日(水) 22:43 |
FIXIDECF を 第4世代タイプR(4.3GB壁がないもの)に対応してバージョンアップしました。これで死角はノート機、430LX機、不明な第0世代だけとなりました。第4世代Rのノート機のIDE BIOSワークエリアのうち、ドライブ毎のH:SのパラメータがあるのはD800:2100hではなくてD800:2300hでよかったしたっけ?対象機種を持っていないのでわかりません。せっかくROMアプリではなくIPLwareですので、ノート機にもなるべく対応したいと思っています。 なお、簡素なパッチで始めたこのプログラムですが、パッチの量は第4世代タイプRが一番多くなってしまいました。このままではIPLwareの特別席(LBA 16-23番地)に入らなくなりそうです(汗
8063MiB壁を32255MiBにすることは容易ですが、サイズ増加もあるし現状ではあえてやっていません。CHSアクセスのときにシリンダ番地16383が上限になるSSDがあるからです(画像)。このSSDを98で使っている人をみかけますが、容量は8063MiBに制限しないとダメです。16383シリンダで打ち止めというよりはCHS transが16383*16*63で打ち止めにされているようで、65535*8*17は通るため、98で使える物ということになっているわけです。 CFではこのようなものは未確認です。
|
Ceとか KAZZEZ 2024年12月19日(木) 2:25 |
CeはロットによってFDから1.44MB起動できない個体(前期?)と1.44MB起動できる個体(後期?)がありますので、念のため手持ちの後期?ロットから以前GETITF98で得られたものを見てみましたが(と言っても「B 」の文字列=42 20を検索して周辺をASM電卓で見た程度ですが)、確かにCS:[2042]を扱っている部分がありますね。一方で次の世代にあたるBfではそのようなものはヒットしませんので、後期ロットだからといってIDE BIOSが進化している心配は無さそうに思います。
ちなみに当方のCeはあれから電源基板の電解コンをほぼすべて交換しても電源が動く気配が無さそうでしたので、当初の予想通り、半導体が劣化しているのかもしれません。そのうち怪しいダイオードを外して、テスタでちまちまとV-I特性でも計ってみようかと考えています。グラフの形でファストリカバリかショットキーバリアか(もしくは故障か)の判断を期待して…。 # まあATX電源を外付けにして変換するのが手っ取り早いんでしょうけど、コンパクト機はサービス電源を生かせないと有り難味が無いですので。
> 8255のポート 確かここには5MHz系/8MHz系の情報もありますから、VX前期と後期で接続が異なるとすれば面倒そうですね。 ところで最近H98をいじっていて、ハイレゾ時はこのポート(I/O 0042)で5MHz系/8MHz系を正しく判断できなかったのでUndoc2を見たら、ちゃんと書いてありますね。しかもH98ではノーマルモードからでもハイレゾプリンタモードに切り替えられるそうで(汗)。以前I/Oロック機ではプリンタロック時にFFになるという話もありましたし、やはりここを見るだけで5MHz系/8MHz系は判断できないと考えたほうが良さそうですね。 もともとVX前期・VM21にVX後期のCPUボードを差すと286/10MHz時にこの値が狂うため、TIMODでは最初からI/O 0042の情報は信用していませんから誤動作はしないはずですが、ハイレゾ時やH98においてはそもそもI/O 0042の情報は表示しないほうが良さそうですね。というかNTLDRから起動したときのタイマー対策もまだほったらかしなのですが。(汗
> FDloaderデバッガ ああ、やはりエミュレータじゃなくてそのようなものを工面されていたのですね。私が2,3ヶ月前にキーボードI/Oの直接操作を試していたのも、そういうものが念頭にあったからなのですが(といってもアセンブラや逆アセンブラは作れそうにありませんので、メモリ・I/O等のDUMP表示や、一部をその場で書き換えたりCALL/INTする程度の簡易モニタしか考えていない訳ですが)。 結局キーボードI/Oの直接操作は良くないという話でしたが、操作はどうされたのでしょう。キーボードBIOSが効いていない(?)FDloader環境であれば、I/O直接操作でも問題ないのかもしれませんが。
|
PCISETも保守点検の時期が来た感 まりも 2024年12月19日(木) 16:25 |
ミイソPCI BIOSはPCIデバイスのMMIOの割り付けに際して、20000000hを基底にすることから、512MBを超えると問題があると思うのですよね。IO・データ機器のSC-UPCI系のBIOSも512MB以上のところで作業しようとするので、512MBで切るようにしています、、、と思ったら間違って引き算していたっぽいです。 それから「2度付け」も話題になっていますが、これも何かしらのバグの可能性はあります。しかしバス検索そのものがバグっているとどうにもならないし、基本的には間違っていないはずです。PERICOMのブリッジ固有の何か解釈の違いでしょうかね。 PCI-E /PCIブリッジなビデオカードが見えないという件もあるようですが、これはデバイス側が決まりを守っていないのが原因かとは思います。マルチファンクションなのにそのフラグが出ていないのか? とりあえずフラグなしでもマルチファンクションを検索するという仕様にしてみましょうかね。ただし検索に時間がかかり起動までの時間が相当延びてしまうことになります。2段下のブリッジのときだけそうするようにして様子をみますか。
1024MiBもメモリを載せるとWindows98が起動できなくなるというMicrosoft公式発表の問題(944MB以上?)もあったはずですが、PC/ATだけの話なのか98でも起こるのか、載せた人の報告ってなかったように思います。 【18:15追記】ということで2点に関係するところを変更して 1.30版としてアップロードしました。 ttps://www7b.biglobe.ne.jp/~marimo9821/iplware/pciset.html PCI-e/PCIなビデオカードが見えるようになるかどうかはわかりませんが・・・
|
「RAMを1G載せた!」「で、動くの?1Gの表示だけ?」 かかっくん 2024年12月19日(木) 18:38 |
> ミイソPCI BIOSはPCIデバイスのMMIOの割り付けに際して、20000000hを基底にすることから、512MBを超えると問題があると思うのですよね。IO・データ機器のSC-UPCI系のBIOSも512MB以上のところで作業しようとするので、512MBで切るようにしています、、、と思ったら間違って引き算していたっぽいです。
此の辺がRaの『256M超を非公認』とする理由の一つとも?
> PCI-E /PCIブリッジなビデオカードが見えないという件もあるようですが、これはデバイス側が決まりを守っていないのが原因かとは思います。マルチファンクションなのにそのフラグが出ていないのか?
ATAの件のやうに、『仕様が変わった』と云う事わ有馬せんか?
> 1024MiBもメモリを載せるとWindows98が起動できなくなるというMicrosoft公式発表の問題(944MB以上?)もあったと思いますが、PC/ATだけの話なのか98でも起こるのか、載せた人の報告ってなかったように思います。
まぁ98で1G載る機種わ非常に限られ枡が 最近つべ辺りにRAMを1G載せた動画の話題が有馬したが、載せた処がゴールでわ有馬せんからねぇ 「で、動くの?」のが大事なワケで。
で、例えば基底をC0000000h(3G)やE0000000h(3.5G)にしたりすれば解決するか?と云えば(略) # 或る時期以降のPC用のPCI板なら対応して居るとわ憶い枡が
|
狭いよ4G空間が/FIXIDECFノート機対応? まりも 2024年12月19日(木) 21:17 |
1024MiBものメモリを載せることとGigaByte大のVRAMを持つグラフィックボードを載せるということも行われているようですが、メインメモリが広過ぎるとビデオメモリのアドレスと衝突しかねないのですよね。今回PCISETではMMIOのアドレス基底は固定で40000000hにしましたが、それでもビデオメモリとぶつかりやすくなります。2GBのVRAMのグラフィックボードなんて無理だろうと思います。割り付けの起点がありません。1GBのVRAMでもそのアドレスが置かれるのは80000000h一択になるでしょうけど、MMIOやVRAMは見つけ次第の検索順に割り振るので、目的のVRAMがうまくそこに置かれるかは分かりません。
そういえばグラフィックボードのVRAMをメインメモリに繋げる話はありましたが、、、PCISETとの混用は無理だと思います。
【23時追記】FIXIDECF は PCIバスが内部的にあるノート機に対応したつもりでバージョン1.40となりました。しかし持っていないので検証は全くしていません。La13はあるのですがFDDが動作しないので何もできず・・・
|
FIXIDECF1.40 リウ 2024年12月20日(金) 0:14 |
バグ報告です。 PAT4GRIM.Sの125行目のmov ax,es:[bx]が1度しか読まれていませんでした。(2100型以外は見えなくなると思います) すみません、リンクがまた設置されていなかったので勝手に想像したファイル名でダウンロードさせていただきました。
1730頃追記 つぶやき見ていただいてありがとうございます。 V166_D2では無事動作しそうです。 問題のNw133での動作の問題点をあらかた見つけて来ました。 IDEBIOSの先頭のsignatureが2Aではなく3Aです。(これを書いている情報はどこにもなかったかも?)そのためIDE-BIOSが出現していません、の表示へ飛びます。 次にパッチ元を探す場所ですが200xh指定で探しているので見つけられません。この機種では260xを指しています。強行してみつけようとしているルーチンを先に実行してからそれを逆算してパッチ元データを書き直すような面倒が必要そうです。
2300追記 >8255のポート H98だとまた仕様が違うのですか…。cputimerの計測でプリンタポートから判別していましたがH98の場合はまた別ルーチンが!!!調べておきます。 22日追記 改訂しました(H98は32bitDMA用IOの存在で判別、ハイレゾモードではメモリの値を信用)が、うちのAsがハイレゾモードに入れなくなっていました。のであまり信頼がありません。V30用ルーチンは想定に戻しましたが、そのせいでまた表示数値がずれることになると思います。
|
FIXED まりも 2024年12月20日(金) 0:49 |
 そもそも1.40のファイルへのリンクがされていなかったので、ダウンロードできた人はいなかったと思います(汗 ご指摘のところを修正しました。果たしてそれで動くのかどうか? ちなみに第4世代Rが他の世代と異なる点で気がついたことがあります。ax=0380h でint 1Bhを呼んだとき、容量による篩い分けのルーチン(identifyの結果からC:H:Sを得てパラメータを格納するところ)は実行されないのですね。そのためFIXIDECFでは、D800:2x00h,x=1,3,7 のワークエリアRAMにパラメータを書き込むという強引な手段をとっています。BIOSの動的な構造は第4世代ともかなり違っています。 そういう意味では第5世代と呼んでもいいのかなと思いますが、混乱になるだけなので、4Rのままとしましょう。
【11時追記】Nw133では通りませんでしたか。「対応しないBIOSです」ならパターン違いということで調べ直すしかないですが、「IDE BIOSが出現していません」はヘンですね。D8000hに正しいものがないことを意味しますので。PCI BIOSかPnP BIOSが出ているのかも? そういえばundoc2のI/O 63Chの記述はへんですよね。00bを出力すればIDE BIOS側、01bでPCI BIOS側、11bでPnP側というのが経験則です。もしかしてNw133だけはundoc2の通りとか?
【18時追記】La13を使えるようにしてやっと分かりました。FDDが使えない中、おふがおさんのDOMが役に立ちました。Nw133でもたぶん同じだと思いますが、IDE BIOS の先頭から9バイト目にある55AA の次の値が2Ahではなく3Ahなのですね。これはブートROMの対応を示すIDです。ノート機だけ何故か変更していたとは、、、こんな所を変更されたのでは、IDE BIOSが見つからないとなるのは道理です。ノート機のIDE BIOSは、ブートROM的に、デスクトップ機のとは別物という謎の扱いとなっているとは知りませんでした。
【21日0時追記】La13でテストできたので(画像)、ワークエリアRAMにD8000:2600hを使うPCIノート機種には対応できたと思います。ということで1.43を今しがたアップロードしました。と思ったら4R世代ノート機ではまだダメでしたか。→1.44→1.45 【14:30追記】デスクトップ機は画像2の通りなのですが、Nw133とはパターンが微妙に違うではないですか。これは実機もデータも持っていない以上、当てずっぽうで何とかするのは限界とみました。次の1.46 でダメなら 1.20+αに引き戻すことにします。そもそも4R世代は8〜32GBのCFを使えばなんの問題もないので、FIXIDECFは不要ですし、サイズが大きくなったところのほとんどは4R世代用の部分ですから、削ってしまいたいところです。
【18:00追記】1.21に戻しました。これは4R世代(4.3GB壁無し)が対応でないぶん、サイズが4096バイト以内に収まります。今後、IPLwareの特別席(LBA番地16-23)にロードするプログラムと合わせて、「98で全然使えない32GB以下のIDEデバイス」への対応を図ろうと思います。
|
KAZZEZ 2024年12月22日(日) 0:55 |
とうとうベクターの作者ページが閉鎖されてしまいましたね…。
> cputimerの計測でプリンタポートから判別 なるほど確かにINT1A-17h実行後に、freq8253.comでは25.00MHzだったものが30.79に変化していますね。一方で、freq.comのほうは26.49MHzのままで変化は無いようです。 Undoc2ではINT1A-17hでH98のプリンタI/Oがハイレゾ仕様に変わることしか書いておらず、ノーマル仕様に戻す方法が私には分かりません。しかしH98は全機種8MHz系だったと思いますから、仮にノーマルプリンタに戻すことができたとしても、8255ポートから読めるのは8MHz系という情報ということになりますので、H98であることを判断できれば8MHz系扱いということでいいとは思います。もしかしたらNT4/2kを動かすために10MHz系に改造されておられる猛者もいるかもしれませんが…どうなんでしょう。VX前期(VM21)にVX後期のCPUボードを差したときと同じように、ワークエリアのフラグでタイマーは変えられますから、8255の情報は8MHz系のままで放置されるかもしれませんが。
> DISK BASICのエントリわE800:2だそーで。 とりあえずosfdiplwでE800:0002へ飛ばしても起動するのはROM BASICのようでした。やってることは0:500にあるDISK BASIC起動のフラグを設定するか否かの違いだけみたいです。
ところでH98のリファレンスディスク(もちろんバックアップですが)にosfdiplwを適用してみるとリファレンスディスクとして使えずosfdiplwつまり起動IPLが優先されるようでした。もともと起動FDでも読み込むmodel90ですからあまり意味ない実験でしたが、一応リファレンスディスクでもIPLは使われているのでしょうかね。もちろんosfdiplw -rでリファレンスディスクとして使えるように戻りました。
> ダウンロードできた人 ノ リウさんのおっしゃるように予想は付きますから、たまたまここを見たタイミングの問題かと…。
|
FDのIPLと云えば かかっくん 2024年12月22日(日) 13:35 |
H98の10M系イヒわNESAのOCを伴い枡から余りお勧め出来ないかと。精々RS-232CとBEEPに 留めるのがよろしい気が?Cバスなら殆どの板が10Mで動き枡(初期にトラブルが有った)から、 同世代機に10M系が有る機種(ES/RS/DS等。FAとFX/FSてチップセットわ同じでしたっけ? FDDが違ゥから違ゥか)なら粗無問題でせうけど
FDのIPLと云えば、実機が無い癖に持って居るRL21/51の診断FDと、えぷの診断FDの フォーマットが2HD/8デスがIPLの+0からコードで埋まって居てBPBもFAT/¥も無い物ですた 個々のファイルイヒわ面倒デスが物理フォーマットが2HD/8でシリンダ77〜を未使用ナノで ○ごと普通のベタイメージ(HDM/XDF)で書き出せばおk
# PCトレーニングFDわBASICのチュートリアルにも関わらずDOSフォーマットなんデスよねぇ # 初心者が実際にBASICを使用中に「ド〜やるンだっけ?」とPCトレーニングFDを入れても # 動かないと
ところで88でわ98と違ってM系FDDの2HDと8インチI/Fの先の8インチ/2HDわ扱いが違ゥそーデスね
> ところでH98のリファレンスディスク(もちろんバックアップですが)にosfdiplwを適用してみるとリファレンスディスクとして使えずosfdiplwつまり起動IPLが優先されるようでした。もともと起動FDでも読み込むmodel90ですからあまり意味ない実験でしたが、一応リファレンスディスクでもIPLは使われているのでしょうかね。もちろんosfdiplw -rでリファレンスディスクとして使えるように戻りました。
FDLoader(BIOSアップデータ)のやうに、特定のアドレスに特定の値や文字列が要るとか? PCIセットアップの方わDOS3ぽいデスが
>> DISK BASICのエントリわE800:2だそーで。 > とりあえずosfdiplwでE800:0002へ飛ばしても起動するのはROM BASICのようでした。やってることは0:500にあるDISK BASIC起動のフラグを設定するか否かの違いだけみたいです。
まぁそんな気がして居ましたが。 DISK BASIC起動にわ最低限DISK BASIC2.0/1.0のDISK code(最も軽くディスク関連コマンド・ 倍精度実数#・漢字変換かJIS16進を付加)が必要と。 矢っ張りROM BASICでディスクを遣うにわBINを書く鹿
|
IDEDEVの大晦日更新 まりも 2024年12月31日(火) 16:09 |
IDEDEVを更新し、別スレッドで話題になった、ACS-2以降で新設の "SET/READ ACCESSIBLE MAX"というコマンドにデバイスが対応しているかどうかを表示するようにしました。うちにあるSSDでは画像の製品1種しか該当しませんでした。従来のSET/READ MAX ADDRESS にも対応しています。当面は容量変更ツールが新コマンドに対応する必要性は低そうです。
【追記】なおこの機能の有無を示すフラグはidentifyデータのワード119(十進数)のbit 8です。Crystal Disk Infoなどでも確認できます。
|
|
|